ESLint:如何在函数上找到不必要的“异步”标记?

问题描述 投票:0回答:1

我想从不需要它的函数中删除任何

async
修饰符。具体来说,那些既不返回承诺也不进行任何
await
调用的内容不应标记为
async

我知道并不是每个人都想要这个,例如遗留代码库可能有很多调用者不值得更改的代码。然而,对于新的代码库,我想在不需要的地方删除

async
,因为这使得函数使用起来更干净,并且更容易测试和推理(这表明该函数不依赖于任何异步行为 - 尽管它可能仍然有异步副作用)。

其中一些很容易被忽略,特别是在

await
函数中唯一的
async
调用被分解出来的情况下,但开发人员没有意识到该函数不再需要异步。

有没有办法用 ESLint 或其他方式检查这一点?我在网络搜索中找不到结果。

typescript promise eslint typescript-eslint
1个回答
13
投票

这是 TS 规则:@typescript-eslint/require-await

以及普通 JS ESLint 版本:require-await

这应该可以防止任何无用的

async
标记。

它正确地标记了一个简单的示例:

export async function a() {
  return 1;
}
© www.soinside.com 2019 - 2024. All rights reserved.