我能够提示参数的类型,但不能提示返回的类型。 我可以看到返回值是字符串还是未定义,但是由于某种原因,我的界面不被接受:
reEmail.test(值)
value
给我以下错误:Argument of type 'ValidatorsProps' is not assignable to parameter of type 'string'.
interface ValidatorsProps {
(value: string | number): string | undefined
}
export const mustBeEmail = (value: ValidatorsProps) => {
const reEmail = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return reEmail.test(value) ? undefined : "Email format is not correct";
};
有帮助吗?预先感谢
答案 0 :(得分:0)
value
具有接口类型,并且与字符串不兼容。
可能的解决方法是
export const mustBeEmail = (value: ValidatorsProps) => {
const reEmail = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
var res = value('some argument');
if (res !== undefined)
return reEmail.test(res) ? undefined : "Email format is not correct";
else
// return something else
};
您应该致电value
以获得结果,检查是否有undefined
并传递给test