Skip to content

eslint/no-constant-condition Correctness

This rule is turned on by default.

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, or do...while statement
  • ?: ternary expression

Example

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();
}

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"
  }
}

References

Released under the MIT License.