You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测并移除TypeScript代码中不必要的async语句?

如何检测并移除同步代码中多余的async声明

可用的Linter工具

  • ESLint + eslint-plugin-unicorn:使用unicorn/no-unnecessary-async-function规则,它能精准识别函数体完全同步、无任何异步逻辑(比如await调用、返回Promise)的async函数,直接标记多余的async关键字,还支持自动修复。
  • ESLint + @typescript-eslint:如果是TypeScript项目,用@typescript-eslint/no-unnecessary-async规则,专门针对TS代码场景检测不必要的async函数,同样支持自动修复。

手动排查辅助技巧

  • 写函数时养成习惯:如果函数里没有await调用,也不返回Promise实例,就不要加async。
  • 团队统一编码规范,明确async的使用场景:只有当函数需要处理异步操作时才使用async关键字。

问题场景回顾

你遇到的这个坑确实常见:

async function aFunctionThatIsJustSyncronous() {
    return false;
}

// 这里会判断为true,因为async函数返回的是Promise实例,非空对象在布尔判断中会被视为true
if(aFunctionThatIsJustSyncronous()) {
}

用上面提到的Linter工具可以自动扫描出这类问题,不用全靠人工排查,能有效避免重复踩坑。

内容的提问来源于stack exchange,提问作者Paul Weber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 20:45:56