Skip to content
← Back to rules

unicorn/throw-new-error Style

🛠️ 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");

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

javascript
throw new Error("🦄");
throw new TypeError("unicorn");
throw new lib.TypeError("unicorn");

如何使用

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 中添加。

参考资料