The "extends": "eslint:recommended"
property in a configuration file enables this rule.
A constant expression (for example, a literal) as a test condition might be a typo or development trigger for a specific behavior. For example, the following code looks as if it is not ready for production.
if (false) { doSomethingUnfinished(); }
This rule disallows constant expressions in the test condition of:
if
, for
, while
, or do...while
statement?:
ternary expressionExamples of incorrect code for this rule:
/*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;
Examples of correct code for this rule:
/*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;
Set to true
by default. Setting this option to false
allows constant expressions in loops.
Examples of correct code for when checkLoops
is false
:
/*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)
This rule was introduced in ESLint 0.4.1.
© JS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/rules/no-constant-condition