Typescript推断的类型不正确:类型“string”上不存在TS2339属性“selected”

Typescript推断的类型不正确:类型“string”上不存在TS2339属性“selected”,typescript,Typescript,在下面的示例中,Typescript为values数组的内部元素类型推断类型字符串。然后它抱怨字符串没有选择属性 let item = { values: [{selected: "123"}]} for (let foobar in item.values) { if (foobar.selected === '123') { console.log('found'); } } 在typescript中运行该示例时,我遇到了上述错误: 您可能想要..而不是.

在下面的示例中,Typescript为values数组的内部元素类型推断类型字符串。然后它抱怨字符串没有选择属性

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

for (let foobar in item.values) {
    if (foobar.selected === '123') {
        console.log('found');
    }
}
在typescript中运行该示例时,我遇到了上述错误:

您可能想要..而不是..in,更多信息:

您可能想要..而不是..in,更多信息:

如果您还告诉OP foobar获取字符串0作为其值,您的答案可能会更有帮助。啊,这很令人惊讶。我来自Java背景,没有意识到其中的差异。如果你还告诉OP foobar将字符串0作为其值,那么你的回答可能会更有帮助。啊,这太令人惊讶了。我来自Java背景,不知道其中的区别。