索引签名,其中键是字符串 vs [string]
Index signature where key is string vs [string]
这两个有什么区别?
let foo:{ [index:string] : string } = {
['hello']: 'world'
};
let bar:{ [index:string] : string } = {
'hello': 'world'
};
对于两个值
,我得到相同的结果 (world
)
console.log(foo['hello'])
console.log(bar['hello'])
第一个允许在方括号之间传递变量:
const key = 'hello';
let foo:{ [index:string] : string } = {
[key]: 'world'
};
但在您当前的示例中,您传递的是纯字符串,因此您使用的是带有静态键的动态语法。 ['hello']: 'world'
完全等同于 'hello': 'world'
.
这两个有什么区别?
let foo:{ [index:string] : string } = {
['hello']: 'world'
};
let bar:{ [index:string] : string } = {
'hello': 'world'
};
对于两个值
,我得到相同的结果 (world
)
console.log(foo['hello'])
console.log(bar['hello'])
第一个允许在方括号之间传递变量:
const key = 'hello';
let foo:{ [index:string] : string } = {
[key]: 'world'
};
但在您当前的示例中,您传递的是纯字符串,因此您使用的是带有静态键的动态语法。 ['hello']: 'world'
完全等同于 'hello': 'world'
.