no-meaningless-void-operator
値を破棄する場合を除き、
void
演算子を禁止します。
🔒
拡張 "plugin:@typescript-eslint/strict-type-checked"
の ESLint 設定 でこのルールを有効にします。
🔧
このルールによって報告される一部の問題は、 --fix
ESLint コマンドラインオプション.
によって自動的に修正可能です。
提案
によって手動で修正可能です。 💭 このルールを実行するには
型情報
が必要です。
TypeScript の
void
は、無視されることを意図した関数の戻り値を指します。void
演算子は、値を破棄するというプログラマーの意図を伝えるのに便利なツールです。たとえば、Promise に .catch()
を追加する代わりに、@typescript-eslint/no-floating-promises
を抑制する方法の一つとして推奨されています。module.exports = {
"rules": {
"@typescript-eslint/no-meaningless-void-operator": "error"
}
};
このルールは、以前は呼び出し側で値が破棄されていたが、呼び出し先が値を返さないように変更された API の変更を、作成者が把握するのに役立ちます。no-unused-expressions と組み合わせることで、コードの読者にも一貫性を提供します。void foo();
のようなステートメントは常に戻り値を破棄し、foo();
のようなステートメントは決して戻り値を破棄しないことを保証します。このルールは、引数が既に void
または undefined
型である void
演算子について報告します。
.eslintrc.cjs
プレイグラウンドでこのルールを試す ↗
✅ 正しい
プレイグラウンドで開く
type Options = [
{
checkNever?: boolean;
},
];
const defaultOptions: Options = [{ checkNever: false }];
オプション
このルールは以下のオプションを受け入れます
checkNever
checkNever: true
は、引数が never
型の場合に void
を削除することを提案します。
使用しない場合
プロジェクト内で余分な void
を気にしない場合は、このルールを避けることができます。
- 型チェックされたリントルールは、従来のリントルールよりも強力ですが、型チェックされたリンティングの構成も必要です。型チェックされたルールを有効にした後にパフォーマンスの低下が発生した場合は、パフォーマンスのトラブルシューティングを参照してください。
- リソース