版本

no-negated-in-lhs

禁止在 in 表达式中否定左操作数

重要

此规则在 ESLint v3.3.0 中已弃用。请使用 no-unsafe-negation 规则代替它。

了解更多

正如开发者可能会将 -a + b 误写成 -(a + b) 来表示和的负数一样,他们也可能错误地输入 !key in object,而他们几乎肯定想表达的是 !(key in object) 来测试一个键是否不在对象中。

规则详情

此规则禁止在 in 表达式中否定左操作数。

此规则的 错误 代码示例

在代码演练场中打开
/*eslint no-negated-in-lhs: "error"*/

if(!key in object) {
    // operator precedence makes it equivalent to (!key) in object
    // and type conversion makes it equivalent to (key ? "false" : "true") in object
}

此规则的 正确 代码示例

在代码演练场中打开
/*eslint no-negated-in-lhs: "error"*/

if(!(key in object)) {
    // key is not in object
}

if(('' + !key) in object) {
    // make operator precedence and type conversion explicit
    // in a rare situation when that is the intended meaning
}

何时不使用此规则

从不。

版本

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

资源

更改语言