跳至主要内容

禁止使用无意义的 void 运算符

禁止使用 void 运算符,除非用于丢弃值。

🔒

"plugin:@typescript-eslint/strict-type-checked" 中扩展 ESLint 配置 将启用此规则。

🔧

此规则报告的一些问题可以通过 --fix ESLint 命令行选项 自动修复。

💡

此规则报告的一些问题可以通过编辑器 建议 手动修复。

💭

此规则需要 类型信息 才能运行。

TypeScript 中的 void 指的是一个旨在被忽略的函数返回值。void 运算符是一个有用的工具,可以传达程序员丢弃值的意图。例如,建议将其作为一种抑制 @typescript-eslint/no-floating-promises 的方法,而不是向 promise 添加 .catch()

此规则帮助作者捕获 API 更改,在这些更改中,以前在调用站点丢弃了一个值,但被调用者发生了更改,因此不再返回值。与 no-unused-expressions 结合使用时,它还有助于代码的阅读者,通过确保一致性:看起来像 void foo(); 的语句始终丢弃返回值,而看起来像 foo(); 的语句从不丢弃返回值。此规则报告任何其参数已经是 voidundefined 类型的 void 运算符。

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-meaningless-void-operator": "error"
}
};

在游乐场中尝试此规则 ↗

示例

示例

void (() => {})();

function foo() {}
void foo();
在 Playground 中打开

选项

此规则接受以下选项

type Options = [
{
checkNever?: boolean;
},
];

const defaultOptions: Options = [{ checkNever: false }];

checkNever

checkNever: true 将建议在参数类型为 never 时移除 void

何时不使用它

如果您不介意项目中存在额外的 void,可以避免使用此规则。


类型检查的 lint 规则比传统的 lint 规则更强大,但也需要配置 类型检查的 lint。如果您在启用类型检查规则后遇到性能下降,请参阅 性能故障排除

资源