【问题标题】:Vee-validate 3.0 configure defaultMessage with vue-18n and TSVee-validate 3.0 使用 vue-18n 和 TS 配置 defaultMessage
【发布时间】:2020-03-02 23:21:24
【问题描述】:

我正在尝试在 TS 中定义 vee-validate configure object,defaultMessage。我在examplesvee-validate.js 文件中看到了这段代码:

configure({
  defaultMessage: (field, values) => {
    // override the field name.
    values._field_ = i18n.t(`fields.${field}`);

    return i18n.t(`validation.${values._rule_}`, values);
  }
});

我尝试在 TS 中转换

const dm: string | ValidationMessageGenerator | undefined =
    (field: string, values: Record<string, any>) => {
        values._field_ = i18n.t(`fields.${field}`);
        return (i18n.t(`validation.${values._rule_}`, values)) as string | ValidationMessageGenerator;
    };
configure({
    defaultMessage: dm,
});

但是,我尝试输入,我总是有这个错误:

El tipo '(field: string, values: Record<string, any>) => ValidationMessageTemplate' no se puede asignar al tipo 'string | ValidationMessageGenerator | undefined'. El tipo '(field: string, values: Record<string, any>) => ValidationMessageTemplate' no se puede asignar al tipo 'ValidationMessageGenerator'. Los tipos de parámetros 'values' y 'params' no son compatibles. El tipo 'Record<string, any> | undefined' no se puede asignar al tipo 'Record<string, any>'. El tipo 'undefined' no se puede asignar al tipo 'Record<string, any>'.ts(2322)

唯一适合我的配置是设置标志 //@ts-ignore 并使用 javascript 代码,可以,但我想输入它并删除标志

谢谢

【问题讨论】:

    标签: vue.js vuejs2 vee-validate vue-i18n


    【解决方案1】:

    您不需要进行所有这些转换,您应该仔细阅读类型,因为存在一些细微的差异,这应该可以:

    const dm = (field: string, values: Record<string, any> = {}) => {
      values._field_ = i18n.t(`fields.${field}`);
    
      return (i18n.t(`validation.${values._rule_}`, values));
    };
    
    configure({
      defaultMessage: dm,
    });
    

    您错过了 values 是可选的,实际上并不是 ValidationMessageGenerator 类型所必需的,因为并非所有规则都有参数。

    【讨论】:

      猜你喜欢
      • 2020-11-23
      • 2020-12-20
      • 2018-11-30
      • 2019-08-13
      • 1970-01-01
      • 2020-11-21
      • 2019-03-04
      • 2021-04-05
      • 2021-08-03
      相关资源
      最近更新 更多