我有我的代码,有些地方看起来像这样:错误TS2342:索引表达式参数的类型必须是“字符串”,“数字”,或“任意”
var array = [];
MyClass myObject = new MyClass();
array[myObject] = "something";
基本上我使用对象作为我的数组中的键。我没有多想,因为它感觉很自然,代码编译得很好,而且我也没有遇到过任何错误。
今天我做的代码无关的部分代码推送和Travis抱怨:
error TS2342: An index expression argument must be of type 'string', 'number', or 'any'.
上线array[myObject] = "something";
我相信这是由于最近的tsc
更新。无论如何,它引起了我的注意,现在我不知道我一直在做什么是正确的:
- 当你使用对象作为数组键时会发生什么?他们被转换成字符串吗?如果是这样,那么由对象构成的字符串应该是唯一的(比如对象的哈希值)?
- 总之,我在做错误的方式吗?如果是这样,我该怎么办才能解决这个问题?