TypeScript 通过对象循环

Ouu*_*iii 7 typescript

我有一个非常简单的问题,我想循环遍历 TypeScript 中的对象。

const an_object = {
    one: 1,
    two: 2,
    three: 3
};

for (let key in an_object) {
    let value = an_object[key];
    // Do something with value
}
Run Code Online (Sandbox Code Playgroud)

此行let value = an_object[key];导致 TypeScript 错误:

[react-scripts] 元素隐式具有“any”类型,因为“string”类型的表达式不能用于索引类型“{ one: number;” 二:数量;三:数量;}'。

我是 TypeScript 新手,不太明白这个问题。

这在 JavaScript 上工作得很好,但在 TypeScript 上却不行。

关于如何正确循环 TypeScript 中的对象而不出现错误,有什么建议吗?

Ouu*_*iii 5

TypeScript 被命名为TYPE Script 是有原因的。

问题是没有指定对象内部的内容。

关于如何正确循环 TypeScript 中的对象而不出现错误,有什么建议吗?

要正确执行此操作,您应该指定对象内部的内容。这可以通过以下方式完成:

  1. 创建一个界面
interface MyObjectsInterface {
    [key: string]: number;
}
Run Code Online (Sandbox Code Playgroud)
  1. 将其分配给对象。
const an_object: MyObjectsInterface = {
    one: 1,
    two: 2,
    three: 3
};
Run Code Online (Sandbox Code Playgroud)
  1. 现在您可以在 forloop 中使用该值
for (let key in an_object) {
    let value: number = an_object[key];
    // Do something with value
}
Run Code Online (Sandbox Code Playgroud)

这样,您将始终知道对象内部的内容。