Typescript:多括号字段声明
我在一个项目中发现了以下表达式:Typescript:多括号字段声明,typescript,Typescript,我在一个项目中发现了以下表达式: export class MyComponent implements OnInit { public field: { [key: number] : string } = something ... } 我不知道这是什么意思。谁能解释一下并给我一个参考,这样我就可以学习这种类型的声明了吗 { [key: number] : string } 是匿名/内联类型声明,转换为: interface Anon { [key: number
export class MyComponent implements OnInit {
public field: { [key: number] : string } = something
...
}
我不知道这是什么意思。谁能解释一下并给我一个参考,这样我就可以学习这种类型的声明了吗
{ [key: number] : string }
是匿名/内联类型声明,转换为:
interface Anon {
[key: number]: string;
}
括号声明,该对象中任何未声明的附加属性的类型必须是number
类型,并且该类型的值必须是字符串
{ 1: "foo", 2: "bar" } // valid
{ "1": "foo", "2": "bar" } // invalid
是匿名/内联类型声明,转换为:
interface Anon {
[key: number]: string;
}
括号声明,该对象中任何未声明的附加属性的类型必须为number
类型,并且该类型的值必须是string
{ 1: "foo", 2: "bar" } // valid
{ "1": "foo", "2": "bar" } // invalid
字段
是一种对象类型(因为{}
),具有返回字符串的数字索引签名。这意味着分配给字段的对象只能有数字键,并且对象中的值必须是string
let field: { [key: number]: string };
field = {
0: "A",
//"A": "A", // error key is not numeric
//0: 0, // error value is not a string
}
let a = field[0] //a is string
field = ["A", "B"] // arrays are valid as well
您可以阅读更多有关它的信息字段
是一种对象类型(因为{}
),具有返回字符串的数字索引签名。这意味着分配给字段的对象只能有数字键,并且对象中的值必须是string
let field: { [key: number]: string };
field = {
0: "A",
//"A": "A", // error key is not numeric
//0: 0, // error value is not a string
}
let a = field[0] //a is string
field = ["A", "B"] // arrays are valid as well
您可以阅读更多有关它的信息@MateutAlin是的,我的坏,修复:)@MateutAlin不,它只是索引参数的名称,可以是您想要的任何名称,key
和name
是常见的选择,但任何名称都可以do@MateutAlin是的,我的坏,修复:)@MateutAlin不,它只是索引参数的名称,它可以是您想要的任何名称,key
和name
是常见的选择,但任何名称都可以