版本

no-eq-null

禁止在没有类型检查运算符的情况下进行 null 比较

在没有类型检查运算符(==!=)的情况下与 null 进行比较,可能会产生意外的结果,因为当与 null 以及 undefined 值进行比较时,比较结果都将为 true。

if (foo == null) {
  bar();
}

规则详情

no-eq-null 规则旨在通过确保与 null 的比较仅匹配 null,而不会同时匹配 undefined,来减少潜在的错误和不必要的行为。 因此,当使用 ==!= 时,它会标记与 null 的比较。

此规则的错误代码示例

在 Playground 中打开
/*eslint no-eq-null: "error"*/

if (foo == null) {
  bar();
}

while (qux != null) {
  baz();
}

此规则的正确代码示例

在 Playground 中打开
/*eslint no-eq-null: "error"*/

if (foo === null) {
  bar();
}

while (qux !== null) {
  baz();
}

何时不使用

如果您想强制执行一般的类型检查操作,请使用更强大的 eqeqeq 规则。

兼容性

  • JSHint: 此规则对应于 JSHint 的 eqnull 规则。

版本

此规则在 ESLint v0.0.9 中引入。

资源

更改语言