【发布时间】:2020-03-02 23:21:24
【问题描述】:
我正在尝试在 TS 中定义 vee-validate configure object,defaultMessage。我在examples、vee-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