src/app/app.component.ts(391,9) 中的错误:错误 TS7017:元素 > 隐式具有“任何”类型,因为类型“Foo”没有索引签名

Posted

技术标签:

【中文标题】src/app/app.component.ts(391,9) 中的错误:错误 TS7017:元素 > 隐式具有“任何”类型,因为类型“Foo”没有索引签名【英文标题】:ERROR in src/app/app.component.ts(391,9): error TS7017: Element > implicitly has an 'any' type because type 'Foo' has no index signature 【发布时间】:2019-11-11 23:45:46 【问题描述】:

我没有分配这样的新属性:Typescript error: TS7053 Element implicitly has an 'any' type 因此任何都不起作用。我只是想根据界面编辑现有属性

   updateFieldTest(index: number, field: string ) 
        const tasks: Foo[] = [
            foo:1,bar:2,
            foo:1,bar:2,
            foo:1,bar:2,
            foo:1,bar:2,
        ]
        const task = tasks[index];
        task[field] = 4
    

界面Foo

export  interface Foo 
    foo: number,
    bar: number

给出这个错误

src/app/app.component.ts(391,9) 中的错误:错误 TS7017:元素 隐式具有“任何”类型,因为类型“Foo”没有索引签名

作为临时解决方案,将field: string更改为field: 'foo' | 'bar'

但是有更好的方法吗?

【问题讨论】:

Typescript error: TS7053 Element implicitly has an 'any' type的可能重复 @MuratKaragöz 这不是重复的。我没有分配这样的新属性:Typescript 错误:TS7053 元素隐式具有“任何”类型因此任何都不起作用。我只是想根据界面编辑现有属性请参阅编辑。 【参考方案1】:

您缺少Foo 的索引类型,它是从field:string 派生的string

interface Foo 
    foo: number,
    bar: number,
    [index: string]: any

【讨论】:

以上是关于src/app/app.component.ts(391,9) 中的错误:错误 TS7017:元素 > 隐式具有“任何”类型,因为类型“Foo”没有索引签名的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Ionic 5 中的@ionic/angular 错误修复成员事件

Primeng表响应宽度

angular2: ElementRef 获取 CSS 填充属性

如何将 Angular HttpModule 导入到根 NgModule

Angular 4 错误:“() => any”类型中缺少属性“includes”