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

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

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

void (() => {})();

function foo() {}
void foo();
❌ 不正

✅ 正しい

プレイグラウンドで開く

type Options = [
{
checkNever?: boolean;
},
];

const defaultOptions: Options = [{ checkNever: false }];

オプション

このルールは以下のオプションを受け入れます

checkNever

checkNever: true は、引数が never 型の場合に void を削除することを提案します。


使用しない場合

プロジェクト内で余分な void を気にしない場合は、このルールを避けることができます。