mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-04 21:59:29 +08:00
60 lines
1.7 KiB
Text
60 lines
1.7 KiB
Text
---
|
|
description: 'Disallow the `void` operator except when used to discard a value.'
|
|
---
|
|
|
|
> 🛑 This file is source code, not the primary documentation location! 🛑
|
|
>
|
|
> See **https://typescript-eslint.io/rules/no-meaningless-void-operator** for documentation.
|
|
|
|
Disallows the `void` operator when its argument is already of type `void` or `undefined`.
|
|
|
|
## Rule Details
|
|
|
|
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`](./no-floating-promises.md) instead of adding `.catch()` to a promise.
|
|
|
|
This rule helps an author 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](https://eslint.org/docs/rules/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.
|
|
|
|
Examples of code for this rule:
|
|
|
|
<!--tabs-->
|
|
|
|
### ❌ Incorrect
|
|
|
|
```ts
|
|
void (() => {})();
|
|
|
|
function foo() {}
|
|
void foo();
|
|
```
|
|
|
|
### ✅ Correct
|
|
|
|
```ts
|
|
(() => {})();
|
|
|
|
function foo() {}
|
|
foo(); // nothing to discard
|
|
|
|
function bar(x: number) {
|
|
void x; // discarding a number
|
|
return 2;
|
|
}
|
|
void bar(); // discarding a number
|
|
```
|
|
|
|
## Options
|
|
|
|
This rule accepts a single object option with the following default configuration:
|
|
|
|
```json
|
|
{
|
|
"@typescript-eslint/no-meaningless-void-operator": [
|
|
"error",
|
|
{
|
|
"checkNever": false
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
- `checkNever: true` will suggest removing `void` when the argument has type `never`.
|