打字稿推断出不正确的类型:TS2339 属性“选定”在类型“字符串”上不存在

Posted

技术标签:

【中文标题】打字稿推断出不正确的类型:TS2339 属性“选定”在类型“字符串”上不存在【英文标题】:Typescript infers incorrect type: TS2339 property 'selected' does not exist on type 'string' 【发布时间】:2017-12-24 18:09:22 【问题描述】:

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

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

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

在打字稿操场上运行示例时,出现上述错误: playground link

【问题讨论】:

【参考方案1】:

您可能想要for..of 而不是for..in,更多信息请点击此处:What is the difference between ( for... in ) and ( for... of ) in javascript?

【讨论】:

如果您还告诉 OP foobar 将字符串 "0" 作为其值,您的回答可能会更有帮助。 啊,真令人惊讶。我来自 Java 背景,不知道其中的区别。

以上是关于打字稿推断出不正确的类型:TS2339 属性“选定”在类型“字符串”上不存在的主要内容,如果未能解决你的问题,请参考以下文章

打字稿和vue中的Summernote

试图通过 suppressExcessPropertyErrors 编译器选项来抑制 TS2339

打字稿不推断通用对象的值

打字稿没有正确推断剩余参数

带有打字稿的 Apollo 网关不会在上下文中接受用户 ID

如何使用打字稿中的查找来推断类型化的 mapValues?