以下代码对我来说似乎很奇怪......
export class Collection {
private data: {[k: string]: any} = {};
constructor () {
// WORKS AS EXPECTED
this.data["hello"] = "hello";
// UNEXPECTEDLY WORKS
this.data[2] = 2;
}
}
export class Collection2 {
private data: {[k: symbol]: any} = {};
constructor () {
// DOESN'T WORK AS EXPECTED
this.data["hello"] = "hello";
// UNEXPECTEDLY DOESN'T WORK
this.data[Symbol.iterator] = function () {}
}
}
如果我将索引签名设置为string
,那么只有字符串应该能够索引它吗?与符号相同。但是,数字能够索引[k: string]
,我收到一个错误,说symbol
不能用作索引签名。