Typescript对象迭代编译器问题

艾比

在名为的文件中给出以下代码test.ts

interface ImageFile {
    width: number;
    height: number;
    url: string;
}

interface ImageFiles {
    low: ImageFile;
    medium?: ImageFile;
    high?: ImageFile;
}

let images: ImageFiles = {
    low: {
        width: 0,
        height: 0,
        url: 'bla'
    }
};

Object.keys(images).forEach((k) => {
    let img = images[k];
    // do something with img
});

使用--noImplicitAny选项进行编译时,出现以下错误:

$ tsc test.ts --noImplicitAny
test.ts(22,10): error TS7017: Index signature of object type implicitly has an 'any' type.

这意味着images[k]类型隐式具有any类型,并且类型转换在这里不起作用。

没有--noImplicitAny标志的编译工作正常。

设置以上标志后,如何正确遍历对象?

西姆斯

TypeScript编译器无法推断的正确类型images[k],这就是它抱怨的原因。如您所知,类型转换不能解决问题。

相反,您可以使用索引签名来告诉编译器ImageFiles对象的所有属性都具有以下类型ImageFile

interface ImageFiles {
    [key: string]: ImageFile;
    low: ImageFile;
    medium?: ImageFile;
    high?: ImageFile;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

编译器和编译器

来自分类Dev

VS2012编译器奇怪的内存释放问题

来自分类Dev

Visual Studio 2010 C ++编译器问题

来自分类Dev

声明后将新成员添加到内联对象时,TypeScript编译器烦人

来自分类Dev

迭代器块的编译器实现不正确?

来自分类Dev

找不到TypeScript编译器

来自分类Dev

了解Typescript编译器生成的Javascript

来自分类Dev

Eclipse编译器出现问题

来自分类Dev

TypeScript编译器不显示TypeError

来自分类Dev

Mac上的TypeScript编译器失败

来自分类Dev

编译器优化问题

来自分类Dev

变量模板的编译器问题

来自分类Dev

Typescript编译器选择错误的重载

来自分类Dev

相对路径问题-TypeScript编译器在Windows和Linux上的行为不同

来自分类Dev

编译器优化打破了懒惰的迭代器

来自分类Dev

Qt Creator编译器配置问题

来自分类Dev

Java 8 Stream-编译器问题

来自分类Dev

使用Typescript编译器API读取和更新对象

来自分类Dev

编译scss的问题,编译器看不到mixin

来自分类Dev

matlab编译器安装问题

来自分类Dev

泛型和迭代器的Java编译器错误

来自分类Dev

Typescript新的编译器状态

来自分类Dev

Eclipse编译器出现问题

来自分类Dev

C ++-不编译对象向量的迭代器

来自分类Dev

Mac上的TypeScript编译器失败

来自分类Dev

TypeScript 模块“*”强制编译器错误

来自分类Dev

Eclipse Photon 上的 AspectJ 编译器 - 编译问题

来自分类Dev

为什么 TypeScript 编译器不会抱怨形状不匹配的对象?

来自分类Dev

Typescript 编译器无法正常工作?