Node.js 如何直接运行 TypeScript 文件

区分 Node.js 原生类型剥离、tsx 与 tsc 编译三条运行路径,说明版本条件、import 后缀、tsconfig 和类型检查的限制。

最佳实践
文件、模块与依赖组织示意

运行 TypeScript 前,先确认项目需要哪些语法和构建功能。 只含可擦除类型的脚本可使用 Node.js 原生类型剥离;依赖完整 TypeScript 转换、路径别名或 JSX 的项目,应使用相应工具链。

原生运行

Node.js 从 22.6.0 引入类型剥离,在 22.18.0 和 23.6.0 起默认启用。对支持该能力的版本,可以直接运行:

node example.ts

早期 22.x 版本需要 --experimental-strip-types。请以当前使用的 Node.js 版本文档为准。

原生模式不做类型检查,也不读取 tsconfig.json 来转换代码。枚举、包含运行时代码的 namespace 等需要生成 JavaScript 的语法不能仅靠类型剥离运行;Node.js 26 已移除旧的 --experimental-transform-types 标志,不能把它当作通用解决办法。

用 tsx 运行

npm install --save-dev tsx
npx tsx example.ts
npx tsx watch example.ts

tsx 适合需要转译的开发脚本和调试工作流。它不会代替 TypeScript 类型检查;项目可以单独执行 npx tsc --noEmit。

先编译再部署

npm install --save-dev typescript
npx tsc
node dist/example.js

此例假定 tsconfig.json 已设置输出目录为 dist。构建与部署时同时确认模块类型、资源文件和依赖路径。

import 后缀怎么写

原生运行 .ts 文件时,相对导入应指向实际文件,例如 import { run } from './run.ts'。编译输出 JavaScript 的项目需要根据模块配置和 TypeScript 版本安排扩展名转换,不能简单要求所有场景都写 .js。

需要生成 JavaScript、检查类型和读取项目配置,是三个不同问题。选定执行路径后,在项目固定的 Node.js 与 TypeScript 版本下验证即可。

参考资料

参考资料

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台