mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-03 03:29:30 +08:00
71 lines
1.8 KiB
Text
71 lines
1.8 KiB
Text
---
|
|
description: 'Require any function or method that returns a Promise to be marked async.'
|
|
---
|
|
|
|
> 🛑 This file is source code, not the primary documentation location! 🛑
|
|
>
|
|
> See **https://typescript-eslint.io/rules/promise-function-async** for documentation.
|
|
|
|
Ensures that each function is only capable of:
|
|
|
|
- returning a rejected promise, or
|
|
- throwing an Error object.
|
|
|
|
In contrast, non-`async` `Promise` - returning functions are technically capable of either.
|
|
Code that handles the results of those functions will often need to handle both cases, which can get complex.
|
|
This rule's practice removes a requirement for creating code to handle both cases.
|
|
|
|
## Rule Details
|
|
|
|
Examples of code for this rule
|
|
|
|
<!--tabs-->
|
|
|
|
### ❌ Incorrect
|
|
|
|
```ts
|
|
const arrowFunctionReturnsPromise = () => Promise.resolve('value');
|
|
|
|
function functionReturnsPromise() {
|
|
return Promise.resolve('value');
|
|
}
|
|
```
|
|
|
|
### ✅ Correct
|
|
|
|
```ts
|
|
const arrowFunctionReturnsPromise = async () => Promise.resolve('value');
|
|
|
|
async function functionReturnsPromise() {
|
|
return Promise.resolve('value');
|
|
}
|
|
```
|
|
|
|
## Options
|
|
|
|
Options may be provided as an object with:
|
|
|
|
- `allowAny` to indicate that `any` or `unknown` shouldn't be considered Promises (`true` by default).
|
|
- `allowedPromiseNames` to indicate any extra names of classes or interfaces to be considered Promises when returned.
|
|
|
|
In addition, each of the following properties may be provided, and default to `true`:
|
|
|
|
- `checkArrowFunctions`
|
|
- `checkFunctionDeclarations`
|
|
- `checkFunctionExpressions`
|
|
- `checkMethodDeclarations`
|
|
|
|
```json
|
|
{
|
|
"@typescript-eslint/promise-function-async": [
|
|
"error",
|
|
{
|
|
"allowedPromiseNames": ["Thenable"],
|
|
"checkArrowFunctions": true,
|
|
"checkFunctionDeclarations": true,
|
|
"checkFunctionExpressions": true,
|
|
"checkMethodDeclarations": true
|
|
}
|
|
]
|
|
}
|
|
```
|