Skip to content
← Back to rules

typescript/no-meaningless-void-operator 正しさ

This rule is turned on by default when type-aware linting is enabled.
💭 This rule requires type information.
An auto-fix is available for this rule.

何をしますか

このルールは、引数がすでに void または undefined 型である場合に void 演算子を使用することを禁止します。

なぜ問題なのか

void 演算子は、式を実行し、その結果を undefined に強制的にするときに役立ちます。しかし、すでに void または undefined 型の式に対して void を使用するのは意味がなく、コードに不要な複雑さを加えるだけです。

このルールに違反する 誤り の例:

ts
function foo(): void {
  return;
}

void foo(); // 意味がない。`foo()` はすでに `void` を返す

void undefined; // 意味がない。`undefined` はすでに `undefined` である

async function bar() {
  void (await somePromise); // `somePromise` が `void` に解決される場合、意味がない
}

このルールに従う 正しい 例:

ts
function getValue(): number {
  return 42;
}

void getValue(); // 意味がある。`number` を `void` に変換する

void console.log("hello"); // 意味がある。`console.log` は `undefined` を返すが、明示的にしたい場合

function processData() {
  // 処理の内容
}

processData(); // 戻り値に興味がないため、`void` は不要

設定

このルールは、以下のプロパティを持つ設定オブジェクトを受け入れます。

checkNever

型: boolean

デフォルト: false

型が never である式に void が適用された場合もチェックするかどうか。

使用方法

設定ファイルまたは CLI でこのルールを 有効化 するには、次のように使用できます:

json
{
  "rules": {
    "typescript/no-meaningless-void-operator": "error"
  }
}
bash
oxlint --type-aware --deny typescript/no-meaningless-void-operator

参照