首页 > 解决方案 > 在映射条目的循环中定义元组类型

问题描述

我有一个很好的.forEach循环:

myMap.forEach((val: object, key: number) => {
    console.log(val)
})

现在我想添加一个 continue 语句,它需要我将它重构为一个 for 循环:

for (let [key, val] of myMap.entries()) => {
    console.log(key) 
    console.log(val) 
    if (something) continue
}

有人会告诉我如何在 for 循环中定义元组的类型吗?

这个Typescript Playground很有帮助。

标签: typescriptfor-looptypes

解决方案


由于 TypeScript 的自动类型推断,参数已经正确输入:

在此处输入图像描述

TypeScript 可以在大多数情况下自动推断类型,在这种情况下,无需显式表示特定标识符的类型。

如果您发现迭代 Map 并没有给您类型有用的结果,而不是尝试在迭代时正确地重新定义类型,而是更改 Map 的定义。例如,如果你有

const myMap = new Map();

然后在地图初始化number继续向其中添加和{ amount: number }对象,要正确键入它,请使用泛型:

const myMap = new Map<number, { amount: number }>();

推荐阅读