禁止不安全的否定
注意:此规则属于
recommended
规则集。在
deno.json
中启用完整集合{ "lint": { "rules": { "tags": ["recommended"] } } }
使用 Deno CLI 启用完整集合
deno lint --rules-tags=recommended
通过将其添加到
deno.json
中的 include
或 exclude
数组,可以将此规则明确地包含或排除在当前标签中的规则之外。{ "lint": { "rules": { "include": ["no-unsafe-negation"], "exclude": ["no-unsafe-negation"] } } }
禁止在关系运算符的左操作数中使用否定运算符 !
。
由于运算符优先级,!
运算符出现在以下运算符的左操作数中时,有时会导致意外行为
in
运算符instanceof
运算符
例如,当开发者编写类似 !key in someObject
的代码时,他们很可能希望它的行为与 !(key in someObject)
相同,但实际上它的行为是 (!key) in someObject
。此 lint 规则会警告 !
运算符的此类用法,以减少混淆。
无效示例
if (!key in object) {}
if (!foo instanceof Foo) {}
有效示例
if (!(key in object)) {}
if (!(foo instanceof Foo)) {}
if ((!key) in object) {}
if ((!foo) instanceof Foo) {}