首页 > 解决方案 > 使用 TypeScript 进行迭代

问题描述

在每次迭代期间您只想使用迭代的键(索引)时,如何迭代 N 次?没有要迭代的数组 - 您可以创建一个类似的数组[...Array(num)]并在其上调用map()or forEach(),但是如何在每次迭代中使用键而不使用项目(在这种情况下将是未定义的)并且没有 TypeScript 编译器抱怨它:

item 已声明但其值从未被读取

这是旧 for 循环的用例还是可以以更简单/更安全的方式完成?

{[...Array(totalNum)].map((item: any, key: number) => {
    // if I console.log(item), tsc won't moan, but clearly not a solution
    return (
        <SomeComponent key={key}>
        </SomeComponent>
    )
})}

标签: javascripttypescript

解决方案


在参数前加一个_表示故意不使用该参数可以解决警告:

[...Array(totalNum)].map((_item, key) => {

(请注意,不需要显式声明参数的类型;它只是在这里增加了额外的语法噪音)

如果要完全删除未使用的参数,可以使用以下命令迭代数组的键Object.keys

Object.keys([...Array(totalNum)]).map((key) => {

推荐阅读