如何检测 JavaScript/TypeScript 中具有相同索引的嵌套循环

How to detect nested loop with same index in JavaScript/TypeScript

我正在尝试检测具有相同索引的嵌套循环,如下所示:

for(let i = 0; i < 10; i++) {
    for(let i = 0; i < 10; i++) {
    }
}

我已经搜索了 Eslint 规则,但到目前为止还没有找到任何解决方案。有没有办法检测到这种糟糕的代码味道?非常感谢。

你不能这样做,因为它是纯粹的逻辑

ESLint 有 no-shadow rule 可以标记这一点,以及您用内部范围变量隐藏外部范围变量的其他地方。例如:

{
    "no-shadow": ["error", { "builtinGlobals": false, "hoist": "functions", "allow": [] }]
}

Demo on the ESLint site:

for(let i = 0; i < 10; i++) {
    for(let i = 0; i < 10; i++) {
//          ^−−−−− 'i' is already declared in the upper scope on line 1 column 9.
        console.log(i);
    }
}