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

如何解决TypeScript中module设为ES2022时的模块导入错误?

解决方案

1. 修改package.json,声明ES模块类型

在项目根目录的package.json中添加"type": "module"字段,告诉Node.js当前项目采用ES模块规范:

{
  "type": "module",
  // 保留原有其他字段
}

2. 调整TypeScript配置细节

确保tsconfig.json的配置与ES模块完全兼容:

{
  "compilerOptions": {
    "target": "ES2017",
    "module": "ES2022",
    "moduleResolution": "NodeNext",
    "outDir": "./dist",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  }
}
  • moduleResolution: NodeNext会自动适配package.json中的type字段,正确解析ES模块的导入路径。
  • 若出现路径解析错误,需在TS文件的导入语句中添加完整文件扩展名(比如.js),示例:
    import { Person } from "../files/class.js";
    import { Chicken } from "./chicken.js";
    
    Node.js的ES模块要求导入路径必须包含完整扩展名,TypeScript在NodeNext模式下会自动将.js映射到对应的.ts源文件进行编译。

3. 运行编译后的代码

执行TypeScript编译命令后,直接用Node.js运行dist目录下的输出文件即可,此时顶级await功能可正常使用。


内容的提问来源于stack exchange,提问作者Роман Кирьянов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 02:04:58