Typescript推断错误类型:TS2339属性'selected'在'string'类型上不存在

问题描述:

在下面的示例中,Typescript为values数组的内部元素类型推断类型字符串。然后它抱怨字符串没有“选择”属性。Typescript推断错误类型:TS2339属性'selected'在'string'类型上不存在

let item = { values: [{selected: "123"}]} 

for (let foobar in item.values) { 
    if (foobar.selected === '123') { 
     console.log('found'); 
    } 
} 

error message image

了打字稿操场上运行的例子。当我得到上述错误: playground link

你可能想for..of代替for..in,更在这里:What is the difference between (for... in) and (for... of) in javascript?

+0

你的答案可能如果你还告诉OP,foobar获得字符串“0”作为它的值,那么请多加一些帮助。 – Duncan

+0

啊,这是令人惊讶的。我来自Java背景,并没有意识到差异。 – kossmoboleat