gpt4 book ai didi

typescript - 错误 TS2342 : An index expression argument must be of type 'string' , 'number' 或 'any'

转载 作者:搜寻专家 更新时间:2023-10-30 21:02:57 24 4
gpt4 key购买 nike

我的代码中有些地方看起来像这样:

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。无论如何,它引起了我的注意,现在我不确定我所做的是否正确:

  • 当你使用对象作为数组键时会发生什么?他们会被转换成字符串吗?如果是这样,由对象组成的字符串是否应该是唯一的(如对象的哈希值)?
  • 简而言之,我做错了吗?如果是这样,我应该怎么做才能解决这个问题?

最佳答案

Basically I'm using objects as keys in my array.

坏主意。 JavaScript 不支持对象作为键。它在对象上调用 toString 以在索引之前获取字符串表示形式。

修复:使用 makeString 函数。结帐:https://github.com/basarat/typescript-collections#a-sample-on-dictionary举个例子

关于typescript - 错误 TS2342 : An index expression argument must be of type 'string' , 'number' 或 'any',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26269564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com