繁体   English   中英

TypeScript:{[key: string]: any} 作为函数的返回类型是什么意思?

[英]TypeScript: What does {[key: string]: any} means as return type of a function?

我目前正在学习 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 类型,但究竟{[key: string]: any}是什么意思?

这意味着该函数返回一个对象,您可以使用任何字符串值对其进行索引; 属性的结果值类型是any含义,它可以是任何东西。 | null意味着它也可以返回null而不是返回实际对象。)

Object −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−v−−−−−−−−−−−−−−−−−−v
                                        {[key: string]: any}
Key of all properties is any string −−−−−^^^^^^^^^^^^^  ^^^−−−−− type of all
                                                                 properties is `any`

这是一个非常广泛的类型。

更多在索引签名的文档中

它返回一个对象,比如

{
   "name": "John"
}

或者

{
   "length": 5
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM