javascript - 使用 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>
)
})}
解决方案
在参数前加一个_
表示故意不使用该参数可以解决警告:
[...Array(totalNum)].map((_item, key) => {
(请注意,不需要显式声明参数的类型;它只是在这里增加了额外的语法噪音)
如果要完全删除未使用的参数,可以使用以下命令迭代数组的键Object.keys
:
Object.keys([...Array(totalNum)]).map((key) => {