Typescript 对象的类型为';未知';-forEach和map
我正在使用Typescript 对象的类型为';未知';-forEach和map,typescript,Typescript,我正在使用forEach或map对对象进行循环。 但是,我在用于循环的变量上遇到类型错误。 错误是对象的类型为“未知”。 这发生在val.name,val.title 使用.forEach Object.entries(data).forEach( ([, val]) => { newObject[val.name] = { // Object is of type 'unknown' title: val.title // Obje
forEach
或map
对对象进行循环。
但是,我在用于循环的变量上遇到类型错误。
错误是对象的类型为“未知”。
这发生在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..}
但它不接受处于该位置的类型一个答案是回到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
,而不是使用Object.entries()
产生的更严格的unknown
。这已在TypeScript v4中测试并运行