我遇到以下错误(解决方案正在工作):
元素隐式具有“ any”类型,因为类型“ {}”没有索引 签名。 [7017]
代码:
const createCollection = (jsonObject: object, namesObject: object): INameHex[] => {
return Object.keys(jsonObject).map(itemKey => {
return {
name: namesObject[itemKey],
hex: jsonObject[itemKey],
}
})
}
我尝试添加接口而不是对象(可能不正确),例如-jsonObject: IProps
。但这没有帮助,因为我的对象(jsonObject参数)看起来像这样:
success: string
error: string
[propName: string]: string
或
default: string
[propName: string]: string
所以对象结构不同。 因此,我真的很想知道在这种情况下如何解决没有索引签名错误的问题?
答案 0 :(得分:1)
看起来像你想要的吗?
interface JSONObj {
success: string
error: string
[propName: string]: string // this is an index signature
}
interface NamesObj {
default: string
[propName: string]: string // this is an index signature
}
const createCollection = (jsonObject: JSONObj | NamesObj, namesObject: NamesObj): INameHex[] => {
return Object.keys(jsonObject).map(itemKey => {
return {
name: namesObject[itemKey],
hex: jsonObject[itemKey],
}
})
}
它不会产生错误,并且与POV类型完全正确。