[英]Property 'length' does not exist on type 'NumberSchema<number>
i am getting error which one mention in title.i know what error is but don't get it how to solve it.我收到标题中提到的错误。我知道错误是什么,但不知道如何解决。
basically i am using 'Yup' for validation.基本上我正在使用“是的”进行验证。
added custom method添加了自定义方法
Yup.addMethod(Yup.number, 'length', function (length: number, message: string) {
const tmessage = (typeof message == 'undefined') ? 'length must be ' + length : message;
return Yup.number().test('length',tmessage,function(value: string | number) {
return (typeof value == 'undefined') ? true : (value.toString().length === this.resolve(length));
});
});
define validation schema定义验证模式
const validationSchema = Yup.object({
name: Yup.string().required('Name is required'),
email: Yup.string().email('Invalid Email').required('Email id required'),
mobile: Yup.number().required('Mobile is required').length(10),
message: Yup.string().required('Message is required')
});
i am getting typescript error on line我在线收到 typescript 错误
mobile: Yup.number().required('Mobile is required').length(10),
You can augment type definitions for the module like described in https://github.com/jquense/yup/issues/312#issuecomment-422666195 .您可以增加模块的类型定义,如https://github.com/jquense/yup/issues/312#issuecomment-422666195中所述。 In your case, create any .d.ts
file in your project and insert this:在您的情况下,在您的项目中创建任何.d.ts
文件并插入:
declare module "yup" {
interface NumberSchema<T extends number | null | undefined = number> {
length(length: number, message: string): NumberSchema<T>;
}
}
Or not ideal but simple solution: disable type checking by using (Yup as any).number().required('Mobile is required').length(10)
.或者不是理想但简单的解决方案:使用(Yup as any).number().required('Mobile is required').length(10)
禁用类型检查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.