typescript/no-confusing-void-expression Pedantic
何を行うか
このルールでは、アローファンクションの戻り値など、混乱を招く場所での 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