我正在使用forEach
或map
在对象上循环。
但是,我在循环使用的变量上遇到类型错误。
错误是Object is of type 'unknown'.
这发生在val.name
,val.title
上。
使用.forEach
Object.entries(data).forEach(
([, val]) => {
newObject[val.name] = { // Object is of type 'unknown'
title: val.title // Object is of type 'unknown'
}}
)
使用.map
Object.entries(data).map(
([, val]) => {
newObject[val.name] = { // Object is of type 'unknown'
title: val.title // Object is of type 'unknown'
}}
)
我试图在变量val
上指定类型,例如:
([, val: any]) => {..my code..}
但它不接受该位置的类型
答案 0 :(得分:2)
一个答案是回到 JavaScript 中迭代对象属性的“经典”方式,在 Object.entries()
存在之前,如下所示:
const obj = {
a: 1,
b: 2,
c: 3,
}
for (const key of Object.keys(obj)) {
const value = obj[k]
// Do something with 'value'...
}
这是可行的,因为 value
的类型是 any
,而不是使用 unknown
时限制更多的 Object.entries()
。这在 TypeScript v4 中已经过测试和工作。