typescript/no-confusing-void-expression 严格检查
它做了什么
此规则禁止在箭头函数返回等容易引起混淆的位置使用 void 表达式。
为什么这是不好的?
void 操作符在需要执行表达式但希望其求值为 undefined 时非常有用。然而,当在返回值有意义的上下文中使用时,它可能会造成混淆,特别是在箭头函数和条件表达式中。
示例
此规则的 错误 代码示例:
ts
// 箭头函数返回 void 表达式
const foo = () => void bar();
// 条件表达式
const result = condition ? void foo() : bar();
// void 在条件语句中
if (void foo()) {
// ...
}此规则的 正确 代码示例:
ts
// 正确使用 void
void foo();
// 显式的返回语句
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