索引签名,其中键是字符串 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'.