【发布时间】:2021-07-14 01:52:32
【问题描述】:
我知道这还有其他问题,但似乎都没有帮助我了解我需要做些什么来解决这个问题。
我已将一个属性设置为组件状态的一部分,并且该对象应该是我用作“映射”来存储键值对的对象.
SampleAttribute: {
x: '',
y: []
}
它的值是在我的组件的一个函数中设置的,我使用 this.setState 将属性设置为我初始化的对象,如下所示:
let kvPairs: { [key: string]: any[] } = {};
但是,在我的函数调用 this.setState 之前的某个时刻,它会将 this.state.SampleAttribute 存储在变量 sampleAttribute 中。此时,我想检查一个字符串数组listOfThings是否有它的任何元素作为sampleAttribute的键,所以我在调用
listOfThings.map(thing => {
if (sampleAttribute[thing])
// do stuff
})
我在 if 语句的那一行得到了错误:
TypeScript: Element implicitly has an 'any' type because expression of type 'string' can't be used to index type
我知道许多答案需要使用 keyof 让编译器知道它可以接受什么作为字符串来索引对象,但似乎这样做需要我创建一个新类型,因为 keyof 需要传递给它的类型。 .所以我只是不知道如何在不走那条路线的情况下做到这一点。
【问题讨论】:
标签: reactjs typescript