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

Node.js v9.0+非TypeScript环境下异步函数同步调用的Lint警告问询

检测TypeScript中未await异步函数调用的Linter方案(适配Node.js v9.0+)

当然有合适的工具!针对你提到的「调用异步函数却未使用await,且仅在函数名不带Async类后缀时触发警告」的需求,ESLint + @typescript-eslint/eslint-plugin 是完全适配的方案,而且开销极低,完美支持Node.js v9.0+版本。

核心规则与配置

最直接的解决方案是使用@typescript-eslint/no-floating-promises规则,它专门检测未被处理的Promise实例——包括你示例中直接调用异步函数却没加await的场景:

示例代码(会触发警告)

async function foo() { return; }
var result = foo(); // 此处会被规则标记,因为未使用await处理Promise

自定义规则配置(适配命名例外)

如果你希望仅当函数名不带Async后缀时触发警告,可以在ESLint配置文件(比如.eslintrc.json)中给规则添加例外配置:

{
  "parser": "@typescript-eslint/parser",
  "plugins": ["@typescript-eslint"],
  "rules": {
    "@typescript-eslint/no-floating-promises": [
      "warn", // 可以设为"error"强制报错,或"warn"仅警告
      {
        "ignorePattern": "^.*Async$" // 忽略所有以Async结尾的异步函数调用
      }
    ]
  }
}

这样配置后,调用fooAsync()未加await不会触发警告,但foo()未加await就会正常弹出提示,完全符合你的需求。

关于开销与兼容性

  • 这套方案的开销非常低:ESLint本身是轻量级工具,@typescript-eslint插件针对TypeScript做了性能优化,在Node.js v9.0+上运行毫无压力,不会拖慢开发流程。
  • Node.js v9.0+已经原生支持async/await语法,不需要额外的转译工具,直接就能配合ESLint进行检测。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:49:05