解决 元素隐式具有 "any" 类型,因为类型为 "string" 的表达式不能用于索引类型 "Object"。 在类型 "Object" 上找不到具有类型为 "string" 的参数的索引签名
解决 元素隐式具有 "any" 类型,因为类型为 "string" 的表达式不能用于索引类型 "Object"。 在类型 "Object" 上找不到具有类型为 "string" 的参数的索引签名
安知鱼
问题:
解决 元素隐式具有 “any” 类型,因为类型为 “string” 的表达式不能用于索引类型 “Object”。 在类型 “Object”
上找不到具有类型为 “string” 的参数的索引签名
描述:
在写代码的时候,对一个对象做了一个 forEach 循环,然后取到了其每一个 key 对应的 value 值,但是写完之后发现
Typescript
报错了,错误内容就是如题,有点奇怪,特此去了解一下
1 |
Object.keys(obejct).forEach((key) => { |
解决过程
方案一:忽略
在
tsconfig.json
中
compilerOptions
里面新增忽略的代码,如下所示,添加后则不会报错
1 |
"suppressImplicitAnyIndexErrors": true |
方案二:声明
在定义的
Interface
里对其进行声明,如下所示,声明过后,也不会再报错
1 |
interface DAMNU_ENABLE { |
方案三:对其使用 keyof 进行判断
1 |
export function isValidKey(
|
定义一个函数:
isValidKey()
,然后对需要使用到的地方进行一次判断
1 |
for (const key in obejct) { |
这三种方式都可以解决如题的报错信息,但是个人比较倾向于第二种或者第三种,并不是第一种不好,只是说,写第一种有一点点写 any 的感觉,不到万不得已不这么弄;