noSelfCompare
Diagnostic Category: lint/suspicious/noSelfCompare
Since: v1.0.0
Sources:
- Same as: 
no-self-compare - Same as: 
eq_op 
Description
Section titled “Description”Disallow comparisons where both sides are exactly the same.
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.
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
Section titled “Examples”Invalid
Section titled “Invalid”if (x === x) {}code-block.js:1:5 lint/suspicious/noSelfCompare ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ✖ Comparing to itself is potentially pointless.
  
  > 1 │ if (x === x) {}
      │     ^^^^^^^
    2 │ 
  
if (a.b.c() !== a.b .c()) {}code-block.js:1:5 lint/suspicious/noSelfCompare ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ✖ Comparing to itself is potentially pointless.
  
  > 1 │ if (a.b.c() !== a.b .c()) {}
      │     ^^^^^^^^^^^^^^^^^^^^
    2 │ 
  
How to configure
Section titled “How to configure”{  "linter": {    "rules": {      "suspicious": {        "noSelfCompare": "error"      }    }  }}