打字稿阴影变量
问题描述:
我在一家打字稿项目中使用TSLint和它下面的代码抱怨变量i
:打字稿阴影变量
for (let i = 0; i < body.children.length; i++)
{
body.children[i].classList.remove('active');
}
该消息是'Shadowed variable: 'i' (no-shadowed-variable)'
这有什么不对的循环,在TS中执行for循环的正确方法是什么?
答
遮蔽意味着声明已经在外部范围内声明的标识符。由于这是一个linter错误,它本身并不正确,但可能会导致混淆,并且会使循环内部不可用外部i
(它被循环变量遮蔽)。
您可以重命名无论是i
变量,但如果你添加规则"prefer-for-of": true
您tslint.json
,TSLint会建议在这种情况下,一个优雅的解决方案:
for (const child of body.children) {
child.classList.remove('active');
}
(前提child
尚未已经声明:-)
你添加这个方法的所有代码?你有另一个我在你的代码?你可以尝试重命名我和所有的解决方案之一应该很好。 –