typescript/no-meaningless-void-operator 正确性
它的作用
此规则禁止在表达式类型已经是 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
type: boolean
default: false
是否检查对类型为 never 的表达式应用 void 情况。
如何使用
要通过配置文件或 CLI 启用 此规则,可以使用:
json
{
"rules": {
"typescript/no-meaningless-void-operator": "error"
}
}bash
oxlint --type-aware --deny typescript/no-meaningless-void-operator