eslint/no-constant-condition Correctness
What it does
Disallow constant expressions in conditions
Why is this bad?
A constant expression (for example, a literal) as a test condition might be a typo or development trigger for a specific behavior.
This rule disallows constant expressions in the test condition of:
if
,for
,while
, ordo...while
statement?
: ternary expression
Examples
Examples of incorrect code for this rule:
js
if (false) {
doSomethingUnfinished();
}
if (new Boolean(x)) {
doSomethingAlways();
}
if (x ||= true) {
doSomethingAlways();
}
do {
doSomethingForever();
} while (x = -1);
Examples of correct code for this rule:
js
if (x === 0) {
doSomething();
}
while (typeof x === "undefined") {
doSomething();
}
Options
checkLoops
{ type: "all" | "allExceptWhileTrue" | "none" | boolean, default: "allExceptWhileTrue" }
"all"
ortrue
disallows constant expressions in loops"allExceptWhileTrue"
disallows constant expressions in loops except while loops with expressiontrue
"none"
orfalse
allows constant expressions in loops
How to use
To enable this rule in the CLI or using the config file, you can use:
bash
oxlint --deny no-constant-condition
json
{
"rules": {
"no-constant-condition": "error"
}
}