首页 > 解决方案 > ESLint:如何在函数上找到不必要的“异步”标记?

问题描述

我想async从不需要它的函数中删除任何修饰符。具体来说,那些既不返回承诺也没有任何await调用的不应该被标记async

我知道不是每个人都可能想要这个,例如,遗留代码库可能有很多这样的调用者不值得改变。但是对于一个新的代码库,我想删除async不需要的地方,因为这使得函数更干净,更容易测试和推理(它表明函数不依赖任何异步行为——尽管它可能仍然有异步副作用)。

其中一些很容易通过,特别是在函数中的唯一await调用async被分解但开发人员没有意识到函数不再需要异步的情况下。

有什么方法可以用 ESLint 或其他方式检查吗?我在网络搜索中失败了。

标签: typescriptpromiseeslinttypescript-eslint

解决方案


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

以及原版 JS ESLint 版本:require-await

这应该可以防止任何无用async的标记。

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

export async function a() {
  return 1;
}

推荐阅读