跳转到内容

useThrowNewError (since v1.8.0)

Diagnostic Category: lint/nursery/useThrowNewError

Sources:

Require new when throwing an error.

While it’s possible to instantiate Error without using the new keyword, it’s better to be consistent: modern builtins require new to be instantiated.

Rule matches errors when their name ends with the word “Error” and the first character is uppercase.

throw Error();
code-block.js:1:7 lint/nursery/useThrowNewError  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Use new Error() instead of Error() when throwing an error.
  
  > 1 │ throw Error();
         ^^^^^^^
    2 │ 
  
   Instantiate Error with new keyword for consistency with modern builtins.
  
   Unsafe fix: Add new keyword.
  
    1 │ throw·new·Error();
        ++++        
throw TypeError('biome');
code-block.js:1:7 lint/nursery/useThrowNewError  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Use new TypeError() instead of TypeError() when throwing an error.
  
  > 1 │ throw TypeError('biome');
         ^^^^^^^^^^^^^^^^^^
    2 │ 
  
   Instantiate Error with new keyword for consistency with modern builtins.
  
   Unsafe fix: Add new keyword.
  
    1 │ throw·new·TypeError('biome');
        ++++                   
throw lib.TypeError();
code-block.js:1:7 lint/nursery/useThrowNewError  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Use new TypeError() instead of TypeError() when throwing an error.
  
  > 1 │ throw lib.TypeError();
         ^^^^^^^^^^^^^^^
    2 │ 
  
   Instantiate Error with new keyword for consistency with modern builtins.
  
   Unsafe fix: Add new keyword.
  
    1 │ throw·new·lib.TypeError();
        ++++                
throw new Error();
throw new TypeError('biome');
throw new lib.TypeError();