为什么'let'声明符号将在TypeScript中转换为字符串索引签名?

时间:2019-12-10 09:26:12

标签: typescript typescript-typings

使用IDS将符号声明为对象的键时,例如:

dfb

let s = Symbol()的类型将自动变为let a = { [s]:1 } ,而在尝试像a这样建立索引时会出错:

  

类型'symbol'不能用作索引类型(2538)

在使用{[x:string]:number}声明的同时,a[s]也可以正常工作。