[英]Property … does not exist on type ‘{ [key: string]: AbstractControl; }’
[英]What does “(control: AbstractControl): {[key: string]: any} | null =>” do?
我是TypeScript和Angular的新手,但是我在C#中有相当不错的背景。
我正在阅读本文 ,特别是“自定义验证器”和此代码段
export function forbiddenNameValidator(nameRe: RegExp): ValidatorFn {
return (control: AbstractControl): {[key: string]: any} | null => {
const forbidden = nameRe.test(control.value);
return forbidden ? {'forbiddenName': {value: control.value}} : null;
};
}
这行代码做什么/意味着什么? 这是TypeScript定义委托的方式吗?
(control: AbstractControl): {[key: string]: any} | null => {
这是arrow function
。 要了解它,您可以将其阅读为
function (control: AbstractControl): {[key: string]: any} | null {
const forbidden = nameRe.test(control.value);
return forbidden ? {'forbiddenName': {value: control.value}} : null;
};
也就是说,该函数返回类型{[key: string]: any}
(具有声明为key
变量的对象,其名称为key
,值类型可以为any),或者返回null
; 而该函数需要Angular类型AbstractControl
输入值。
在TypeScript中,冒号通常以两种方式使用:
{ key: value }
希望这可以帮助。 欢迎来到Angular和TypeScript的世界!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.