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

TypeScript运行报SyntaxError: Unexpected token 'export'如何解决

报错原因
  • Node.js 原生仅能识别标准JavaScript代码,无法直接解析TypeScript的接口、类型标注等专属语法,直接将.ts文件改后缀为.js运行会触发各类语法错误。
  • Node.js 默认采用 CommonJS 模块规范,原生不识别ES Module规范的export/import关键字。如果TypeScript编译配置输出的是ES模块格式的JS代码,直接用Node运行就会抛出Unexpected token 'export'错误。
  • 未执行TypeScript编译步骤就尝试运行文件,文件内的TS专属语法、ES模块语法都无法被Node解析,必然触发报错。
修复方案

方案1:编译为CommonJS规范(生产环境通用,兼容所有Node版本)

  1. 项目根目录执行命令生成TypeScript配置文件:
    tsc --init
  2. 打开生成的tsconfig.json,修改核心编译配置如下:
{
  "compilerOptions": {
    "target": "ES6",
    "module": "CommonJS",
    "outDir": "./dist",
    "strict": true
  }
}

其中outDir为编译后JS文件的输出目录,可按需调整。
3. 执行编译命令,将所有TS文件转为可被Node直接执行的CommonJS格式JS:
tsc
4. 进入编译输出目录,运行生成的JS文件即可正常执行:
node dist/test.js

方案2:启用Node原生ES Module支持(适合Node 14.13+版本)

如果需要保留import/export的ES模块写法,可按如下配置:

  1. 修改tsconfig.json核心配置:
{
  "compilerOptions": {
    "target": "ES6",
    "module": "ESNext",
    "moduleResolution": "node",
    "outDir": "./dist"
  }
}
  1. 打开项目根目录的package.json,添加一行配置声明所有.js文件按ES模块解析:
{
  "type": "module"
}
  1. 执行tsc完成编译后,直接运行node dist/test.js即可。

方案3:免编译直接运行TS文件(适合本地开发调试)

如果不想每次修改代码后手动执行编译,可以用ts-node工具直接运行TS源文件:

  1. 本地安装依赖:
    npm install ts-node typescript @types/node -D
  2. 配置好tsconfig.json后,直接执行命令运行TS文件即可:
    npx ts-node test.ts
    注意:如果要在该方案下使用ES模块语法,除了在package.json添加"type": "module"配置外,启动时需要额外加参数npx ts-node --esm test.ts。该方案仅适合开发阶段使用,生产环境建议提前编译为JS再部署运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:01:41