メインコンテンツへスキップ

no-throw-literal

リテラルを例外としてスローすることを禁止します。

💭

このルールは、 型情報 を実行する必要があります。

Error オブジェクト自体、またはユーザー定義の例外のベースオブジェクトとして Error オブジェクトを使用するオブジェクトのみを throw するのが良いプラクティスとされています。Error オブジェクトの基本的な利点は、それらが構築され、発生した場所を自動的に追跡することです。

このルールは、例外としてスローできるものを制限します。

警告

このルールは、only-throw-error に名前が変更されています。現在の名前である no-throw-literal は、typescript-eslint の将来のメジャーバージョンで削除される予定です。

最初に作成されたとき、このルールはリテラルがスローされるのを防ぐだけでしたが(そのためこの名前)、現在では Error オブジェクトである可能性がある式のみを許可するように拡張されました。allowThrowingAny および allowThrowingUnknown オプションを使用すると、Error のインスタンスであることが保証されている値のみをスローできるように構成できます。

オプション

eslint/no-throw-literal オプションを参照してください。

使用方法

.eslintrc.cjs
module.exports = {
"rules": {
// Note: you must disable the base rule as it can report incorrect errors
"no-throw-literal": "off",
"@typescript-eslint/no-throw-literal": "error"
}
};

プレイグラウンドでこのルールを試す ↗

使用しない場合

型チェック付きのリンタールールは、従来のリンタールールよりも強力ですが、型チェック付きリンティングを構成する必要もあります。型チェック付きのルールを有効にした後にパフォーマンスが低下する場合は、パフォーマンスのトラブルシューティングを参照してください。

リソース

ESLint coreから❤️を込めて引用しました。