Skip to content

Prefer using a logical operator over a ternary ​

💼 This rule is enabled in the ✅ recommended config.

💡 This rule is manually fixable by editor suggestions.

Disallow ternary operators when simpler logical operator alternatives exist.

Ideally, most reported cases have an equivalent Logical OR(||) expression. The rule intentionally provides suggestions instead of auto-fixes, because in many cases, the nullish coalescing operator (??) should be preferred.

Fail ​

js
foo ? foo : bar;
js
foo.bar ? foo.bar : foo.baz
js
foo?.bar ? foo.bar : baz
js
!bar ? foo : bar;

Pass ​

js
foo ?? bar;
js
foo || bar;
js
foo ? bar : baz;
js
foo.bar ?? foo.baz
js
foo?.bar ?? baz

Released under the Apache License 2.0.