为什么“让”声明符号会转换为 TypeScript 中的字符串索引签名?

db9*_*035 0 typescript typescript-typings

使用时let s = Symbol()把该符号声明作为对象的密钥,如:

let a = { [s]:1 }
Run Code Online (Sandbox Code Playgroud)

的类型a将自动变为,{[x:string]:number}而尝试索引时会出错a[s]

类型“符号”不能用作索引类型 (2538)

而 useconst s = Symbol()声明是工作 as become to {[s]:number}