为什么在对象键的类型声明中使用方括号?

时间:2018-08-20 03:02:51

标签: typescript

我需要这个:

Impact: = { 0: "Minor", 1: "Major", 2: "Critical" };

如果我想显式注释类型,则为:

Impact: { [key: number]: string } = { 0: "Minor", 1: "Major", 2: "Critical" };

为什么不呢?

Impact: { number: string } = { 0: "Minor", 1: "Major", 2: "Critical" };

方括号是什么意思? key是保留字吗?

1 个答案:

答案 0 :(得分:1)

方括号是用于访问元素的方括号的助记符:

let Impact: {[key: number]: string} = ...;
console.log(Impact[0]);

与呼叫签名比较,可以这样声明:

let Impact: {(key: number): string} = ...;
// equivalent shorthand:
// let Impact: (key: number) => string;
console.log(Impact(5));

在两种情况下,名称key是一个任意的参数名称。

{number: string}语法已用于具有单个属性名为number的对象。