【发布时间】:2023-02-05 21:12:17
【问题描述】:
似乎没有 ESLint 规则来检测嵌套变量赋值。这是一个很常见的错误。
function assert (cond) {
if (!cond) {
throw new Error("Assertion failed.");
}
}
function test () {
let var1 = 1;
assert(var1 = 2); // mistake: assigns 2 to var1!
console.log(var1);
}
我试图在 GitHub 上提出一个新规则,但这只有在有相关的新 ECMAScript 特性时才有可能。而且我找不到可以相应扩展的现有规则。 no-cond-assign 和no-return-assign 规则相似,但它们不适合这样的扩展。
【问题讨论】:
-
由于这将始终返回 true(我假设)
no-constant-condition会抓住这个吗?我不是 100% 确定,因为这是在使用断言。 -
我在 ESLint 配置文件中使用
"extends": "eslint:all"进行了测试,但没有检测到此问题的现有规则(具有默认选项)。
标签: eslint