我想从不需要它的函数中删除任何
async
修饰符。具体来说,那些既不返回承诺也不进行任何 await
调用的内容不应标记为 async
。
我知道并不是每个人都想要这个,例如遗留代码库可能有很多调用者不值得更改的代码。然而,对于新的代码库,我想在不需要的地方删除
async
,因为这使得函数使用起来更干净,并且更容易测试和推理(这表明该函数不依赖于任何异步行为 - 尽管它可能仍然有异步副作用)。
其中一些很容易被忽略,特别是在
await
函数中唯一的 async
调用被分解出来的情况下,但开发人员没有意识到该函数不再需要异步。
有没有办法用 ESLint 或其他方式检查这一点?我在网络搜索中找不到结果。
这是 TS 规则:@typescript-eslint/require-await
以及普通 JS ESLint 版本:require-await
这应该可以防止任何无用的
async
标记。
它正确地标记了一个简单的示例:
export async function a() {
return 1;
}