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"
}
};
プレイグラウンドでこのルールを試す ↗
使用しない場合
型チェック付きのリンタールールは、従来のリンタールールよりも強力ですが、型チェック付きリンティングを構成する必要もあります。型チェック付きのルールを有効にした後にパフォーマンスが低下する場合は、パフォーマンスのトラブルシューティングを参照してください。