我有我的代碼,有些地方看起來像這樣:錯誤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
更新。無論如何,它引起了我的注意,現在我不知道我一直在做什麼是正確的:
- 當你使用對象作爲數組鍵時會發生什麼?他們被轉換成字符串嗎?如果是這樣,那麼由對象構成的字符串應該是唯一的(比如對象的哈希值)?
- 總之,我在做錯誤的方式嗎?如果是這樣,我該怎麼辦才能解決這個問題?