Lint Rules

noUnsafeNegation (since v0.7.0)

This rule is recommended by Rome.

Disallow using unsafe negation.

Examples

Invalid

!1 in [1,2];
correctness/noUnsafeNegation.js:1:1 lint/correctness/noUnsafeNegation  FIXABLE  ━━━━━━━━━━━━━━━━━━━━

   The negation operator is used unsafely on the left side of this binary expression.
  
  > 1 │ !1 in [1,2];
   ^^^^^^^^^^^
    2 │ 
  
   Suggested fix: Wrap the expression with a parenthesis
  
    1 │ !(1·in·[1,2]);
   +          + 
/**test*/!/** test*/1 instanceof [1,2];
correctness/noUnsafeNegation.js:1:10 lint/correctness/noUnsafeNegation  FIXABLE  ━━━━━━━━━━━━━━━━━━━

   The negation operator is used unsafely on the left side of this binary expression.
  
  > 1 │ /**test*/!/** test*/1 instanceof [1,2];
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    2 │ 
  
   Suggested fix: Wrap the expression with a parenthesis
  
    1 │ /**test*/!/**·test*/(1·instanceof·[1,2]);
                      +                  + 

Valid

-1 in [1,2];
~1 in [1,2];
typeof 1 in [1,2];
void 1 in [1,2];
delete 1 in [1,2];
+1 instanceof [1,2];