Skip to content
← Back to rules

typescript/no-confusing-void-expression Pedantic

💭 This rule requires type information.
🛠️💡 An auto-fix and a suggestion are available for this rule.

何を行うか

このルールでは、アローファンクションの戻り値など、混乱を招く場所での void 式の使用を禁止します。

なぜ問題なのか

void 演算子は、式を実行しながら undefined に評価したい場合に便利ですが、戻り値が意味を持つ場所(特にアローファンクションや条件式)で使用すると混乱を引き起こす可能性があります。

このルールに対して 誤り の例:

ts
// void 式を返すアローファンクション
const foo = () => void bar();

// 条件式
const result = condition ? void foo() : bar();

// 条件式内での void
if (void foo()) {
  // ...
}

このルールに対して 正しい 例:

ts
// void の適切な使用
void foo();

// 明示的な return 文
const foo = () => {
  bar();
  return;
};

// ステートメント式
foo();

// void を用いたイミディエイト実行関数
void (function () {
  console.log("即時実行");
})();

設定

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

ignoreArrowShorthand

type: boolean

default: false

void を返すアローファンクションの省略形を無視するかどうか。 true にすると、() => someVoidFunction() のような式を許可します。

ignoreVoidOperator

type: boolean

default: false

void 演算子を使用する式を無視するかどうか。 true にすると、void someExpression が許可されます。

ignoreVoidReturningFunctions

type: boolean

default: false

void を返すと宣言された関数の呼び出しを無視するかどうか。 true にすると、x = voidReturningFunction() などの式が許可されます。

使用方法

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

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

参照