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

Node v14.15.1下使用worker_threads遇TS2307错误,求解决方案

解决TypeScript中找不到'worker_threads'模块类型声明的问题

你说的没错,worker_threads在Node.js 11之后就进入稳定状态了,JS能正常运行但TS报错,核心原因是TypeScript需要对应的类型声明文件才能识别Node.js核心模块的结构,而JavaScript可以直接调用Node的API无需类型校验。

下面是具体的解决步骤:

  • 第一步:安装匹配Node版本的@types/node包
    Node.js所有核心模块的类型声明都集中在@types/node包里,为了避免版本不兼容,建议安装和你Node v14.15.1对应的14.x系列版本,执行命令:

    npm install @types/node@14 --save-dev
    

    如果你使用yarn管理依赖,可执行:

    yarn add @types/node@14 --dev
    
  • 第二步:检查并调整tsconfig.json配置
    安装完类型包后,需要确保TypeScript能正确识别它。打开你的tsconfig.json,检查compilerOptions中的关键配置:

    1. 确认moduleResolution设置为node(这是TypeScript处理Node模块的默认解析逻辑,若被修改过请改回)
    2. 如果配置里存在types字段,需要把node加入其中;若没有这个字段,无需额外添加,TypeScript会自动扫描所有已安装的@types包
      参考配置片段如下:
    {
      "compilerOptions": {
        "module": "commonjs",
        "moduleResolution": "node",
        "target": "es2020", // Node 14对ES2020支持完善,选这个版本适配性最好
        "types": ["node"]
      }
    }
    
  • 第三步:重新编译验证
    完成上述配置后,再次执行你的编译命令:

    tsc src/api/services/email.service.ts
    

    此时TypeScript应该能正常识别worker_threads模块的类型,TS2307报错会消失。

补充说明:你提到其他核心库如fs能正常使用,大概率是之前项目中已间接安装了@types/node,或是tsconfig配置已包含node类型,但旧版本的@types/node可能未覆盖worker_threads的类型定义,安装对应Node14版本的@types/node就能彻底解决这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:57:38