no-eq-null
Disallow null comparisons without type-checking operators
Comparing to null without a type-checking operator (== or !=) can have unintended results as the comparison will evaluate to true when comparing not just to null, but also to undefined.
if (foo == null) {
bar();
}
Rule Details
The no-eq-null rule aims to reduce potential bugs and unwanted behavior by ensuring that comparisons to null only match null, and not also undefined. As such, it will flag comparisons to null when using == and !=.
Examples of incorrect code for this rule:
Open in Playground
/*eslint no-eq-null: "error"*/
if () {
bar();
}
while () {
baz();
}
Examples of correct code for this rule:
Open in Playground
/*eslint no-eq-null: "error"*/
if (foo === null) {
bar();
}
while (qux !== null) {
baz();
}
Options
This rule has no options.
When Not To Use It
If you want to enforce type-checking operations in general, use the more powerful eqeqeq instead.
Compatibility
- JSHint: This rule corresponds to
eqnullrule of JSHint.
Related Rules
Version
This rule was introduced in ESLint v0.0.9.