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 を使用することで意図が明確になり、一貫した振る舞いが確保され、微細なバグを回避する助けになります。

このルールに対して 誤り のコード例:

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

このルールに対して 正しい コード例:

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

使い方

このルールを設定ファイルまたは CLI で 有効化 するには、以下のいずれかを使用できます:

json
{
  "rules": {
    "unicorn/throw-new-error": "error"
  }
}
bash
oxlint --deny unicorn/throw-new-error

参照