我是TypeScript和Angular的新手,但是我在C#中有很好的背景。
我正在阅读此article,特别是“自定义验证器”和此代码段
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 => {
答案 0 :(得分:4)
这是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
的键的对象,并且值类型可以是任意)或null
;而该函数需要角度类型为AbstractControl
的输入值。
在TypeScript中,冒号通常以两种方式使用:
{ key: value }
希望这会有所帮助。欢迎来到Angular和TypeScript的世界!