运行时支持:TypeScript To JavaScript — Numio
去除 TypeScript 类型(注解、interface、类型别名和泛型),得到普通 JavaScript。支持 .ts 和 .tsx:JSX 保持原样,因此 TSX 组件会变为 JSX。代码在服务器上转换,不做类型检查、打包或运行。
在 JS 项目中使用某段 TypeScript 代码前,先看看它对应的普通 JavaScript。
Code is converted on the server. No type-checking, execution or dependency bundling is performed. JSX is preserved.
TypeScript
JavaScript
适用场景
- 在 JS 项目中使用某段 TypeScript 代码前,先看看它对应的普通 JavaScript。
- 去掉 props 类型并保留 JSX,把 React .tsx 组件变为 .jsx。
使用方法
- 粘贴 TypeScript 或 TSX,或加载示例(interface 与函数、泛型、JSX)。加载示例会替换你的输入。
- 在右侧查看 JavaScript。类型注解和 interface 会消失;enum 等在运行时存在的代码会输出为 JavaScript。
- 复制结果。如果需要类型安全,请另外用 tsc --noEmit 对原始 TypeScript 做类型检查。
TypeScript 输入
interface User { name: string }
const greet = (user: User): string => "Hello, " + user.name;JavaScript 输出
const greet = (user) => "Hello, " + user.name
功能与限制
代码会发送到 douni.one 服务器进行转换。请勿粘贴密钥、API key 或不能共享的源代码。
去除类型不等于类型检查:const count: number = "text" 也能无错误地转换。请用 TypeScript 编译器检查类型。
JSX 仍是 JSX。要在浏览器中运行 React 组件,仍需要项目的 JSX 构建步骤。
enum 等带运行时值的结构会生成 JavaScript 代码,而不是消失。
只转换粘贴的代码:不解析导入、不打包文件,也不会为旧浏览器降级现代语法。
FAQ
能把 TSX 转换为 JSX 吗?
能。粘贴 .tsx 组件:props 类型和 interface 会被移除,JSX 保持不变,结果可以保存为 .jsx。将 JSX 编译为 React.createElement 调用不在本工具范围内。
这和运行 tsc 有什么不同?
tsc 会对整个项目做类型检查,并可按指定 target 输出 JavaScript。本页面只用 Babel 的 TypeScript transform 去除所粘贴代码中的类型,保留现代语法,从不报告类型错误。对于整个项目,请在本地运行 tsc 或 esbuild 等打包工具。
为什么有类型错误的代码也能转换?
转换是纯语法层面的,不会根据类型检查赋值或函数调用,因此请在项目中运行 TypeScript 编译器来查找类型错误。
遇到语法错误时应该检查什么?
查看报告的行号和列号、附近的括号以及那里的类型注解。把代码缩减成小片段有助于定位问题;如果是连接错误,请点击 Retry。