Skip to main content

no-meaningless-void-operator

Disallow the void operator except when used to discard a value.

🔒

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

🔧

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

💡

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

💭

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


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

英:void in TypeScript refers to a function return that is meant to be ignored. The void operator is a useful tool to convey the programmer's intent to discard a value. For example, it is recommended as one way of suppressing @typescript-eslint/no-floating-promises instead of adding .catch() to a promise.

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

英:This rule helps an authors catch API changes where previously a value was being discarded at a call site, but the callee changed so it no longer returns a value. When combined with no-unused-expressions, it also helps readers of the code by ensuring consistency: a statement that looks like void foo(); is always discarding a return value, and a statement that looks like foo(); is never discarding a return value. This rule reports on any void operator whose argument is already of type void or undefined.

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-meaningless-void-operator": "error"
}
};
在线运行试试这个规则 ↗

示例

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

function foo() {}
void foo();
Open in Playground

选项

checkNever

当参数的类型为 never 时,checkNever: true 将建议删除 void

英:checkNever: true will suggest removing void when the argument has type never.

何时不使用它

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

英:If you don't mind extra voids in your project, you can avoid this rule.

选项

该规则接受以下选项

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

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

资源