useThrowNewError
Diagnostic Category: lint/style/useThrowNewError
Since: v1.8.0
Sources:
- Same as:
unicorn/throw-new-error
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.
Examples
Section titled ExamplesInvalid
Section titled Invalidcode-block.js:1:7 lint/style/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();
│ ++++
code-block.js:1:7 lint/style/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’);
│ ++++
code-block.js:1:7 lint/style/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();
│ ++++