我目前正在学习TypeScript和Angular。在阅读有关自定义验证器的内容时,我遇到了来自https://angular.io/guide/form-validation的以下代码。
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;
};
}
我不太了解内部函数的返回类型,即{[key: string]: any}
是什么意思?我了解key:string
部分,即Object的键是字符串类型,但是{[key: string]: any}
到底是什么意思?
答案 0 :(得分:2)
这意味着该函数返回一个可以用任何字符串值索引到的对象;该属性的结果值类型为any
,意味着它可以是任何东西。 (| null
意味着它也可以返回null
而不是返回实际对象。)
Object −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−v−−−−−−−−−−−−−−−−−−v {[key: string]: any} Key of all properties is any string −−−−−^^^^^^^^^^^^^ ^^^−−−−− type of all properties is `any`
这是非常广泛的类型。
答案 1 :(得分:-1)
它返回一个对象,例如
{
"name": "John"
}
或
{
"length": 5
}