Skip to content
← Back to rules

unicorn/throw-new-error 样式

🛠️ An auto-fix is available for this rule.

它的作用 ​

此规则确保在抛出错误时始终使用 new。

为什么这不好? ​

在 JavaScript 中,省略 new(例如,throw Error('message'))是允许的, 但它不会正确初始化错误对象。这可能导致缺少 堆栈跟踪或原型链不正确。使用 new 可以让意图更清晰, 确保行为一致,并有助于避免一些微妙的 bug。

示例 ​

以下是此规则的错误代码示例:

javascript
throw Error("🦄");
throw TypeError("unicorn");
throw lib.TypeError("unicorn");
const e = Error("message");

以下是此规则的正确代码示例:

javascript
throw new Error("🦄");
throw new TypeError("unicorn");
throw new lib.TypeError("unicorn");
const e = new Error("message");

How to use ​

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "unicorn/throw-new-error": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "unicorn/throw-new-error": "error",
  },
});
bash
oxlint --deny unicorn/throw-new-error

版本 ​

此规则于 v0.0.14 中添加。

参考资料 ​