noSelfCompare
诊断类别:lint/suspicious/noSelfCompare
¥Diagnostic Category: lint/suspicious/noSelfCompare
自从:v1.0.0
¥Since: v1.0.0
来源:
¥Sources:
-
与以下相同:
no-self-compare
¥Same as:
no-self-compare
-
与以下相同:
eq_op
¥Same as:
eq_op
禁止在双方完全相同的情况下进行比较。
¥Disallow comparisons where both sides are exactly the same.
在 CI 环境中使用的命令。它会让读者感到困惑,并可能导致运行时错误。
¥Comparing a variable against itself is usually an error, either a typo or refactoring error. It is confusing to the reader and may potentially introduce a runtime error.
唯一需要将变量与自身进行比较的情况是测试
NaN
时。但是,对于该用例,使用typeof x === 'number' && Number.isNaN(x)
比让代码的读者确定自我比较的意图更为合适。¥The only time you would compare a variable against itself is when you are testing for
NaN
. However, it is far more appropriate to usetypeof x === 'number' && Number.isNaN(x)
for that use case rather than leaving the reader of the code to determine the intent of self comparison.
¥Examples
¥Invalid
code-block.js:1:5 lint/suspicious/noSelfCompare ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Comparing to itself is potentially pointless.
> 1 │ if (x === x) {}
│ ^^^^^^^
2 │
code-block.js:1:5 lint/suspicious/noSelfCompare ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Comparing to itself is potentially pointless.
> 1 │ if (a.b.c() !== a.b .c()) {}
│ ^^^^^^^^^^^^^^^^^^^^
2 │
¥Related links