Eslint
规则 | Rules

no-constant-condition

条件中不允许常量表达式(无恒定条件)

配置文件中的"extends": "eslint:recommended"属性启用此规则。

作为测试条件的常量表达式(例如,文字)可能是特定行为的拼写错误或开发触发器。例如,以下代码看起来好像尚未准备好进行生产。

if (false) { doSomethingUnfinished( }

规则细节

此规则在下列测试条件中不允许使用常量表达式:

  • ifforwhile,或do...while语句

  • ?: 三元表达

此规则的错误代码示例:

/*eslint no-constant-condition: "error"*/ if (false) { doSomethingUnfinished( } if (void x) { doSomethingUnfinished( } for (;-2;) { doSomethingForever( } while (typeof x) { doSomethingForever( } do { doSomethingForever( } while (x = -1 var result = 0 ? a : b;

此规则的正确代码示例:

/*eslint no-constant-condition: "error"*/ if (x === 0) { doSomething( } for (;;) { doSomethingForever( } while (typeof x === "undefined") { doSomething( } do { doSomething( } while (x var result = x !== 0 ? a : b;

选项

checkLoops

默认设置为true。设置此选项false允许循环中的常量表达式。

正确代码的例子,当checkLoopsfalse

/*eslint no-constant-condition: ["error", { "checkLoops": false }]*/ while (true) { doSomething( if (condition()) { break; } }; for (;true;) { doSomething( if (condition()) { break; } }; do { doSomething( if (condition()) { break; } } while (true)

版本

这条规则是在 ESLint 0.4.1中引入的。

资源