📝
免费 JSON 转 TypeScript 转换器
从任意 JSON 对象或数组生成 TypeScript 接口或类型别名。粘贴 JSON,即刻获得可直接使用的 TypeScript 类型。
加载后可离线使用
export interface User {
id: number;
name: string;
email: string;
isActive: boolean;
score: number;
tags: string[];
address?: null;
}
export interface Root {
user: User;
createdAt: string;
version: number;
}常见用途
- 从API响应生成TypeScript类型粘贴API JSON响应并立即生成TypeScript接口以对前端代码进行类型安全。
- 配置和设置对象的TypeScript类型从JSON配置文件生成TypeScript接口,为应用程序设置添加类型安全。
- 从数据库记录生成TypeScript类型将JSON导出的数据库记录或ORM查询结果转换为TypeScript接口以进行数据层类型化。
- 模拟数据和测试装置的类型从JSON模拟数据和测试装置生成TypeScript接口,为单元测试和Storybook故事键入。
- 键入第三方API响应从第三方API响应生成TypeScript接口,其中官方类型缺失或过期。
工作原理
此工具使用手写的递归类型推断算法,不使用任何外部库——用 JSON.parse 验证和解析输入,然后通过自定义遍历访问 JSON 树中的每个值,直接在浏览器中生成 TypeScript interface 或 type 声明。不会向服务器发送任何内容。
- 1解析并验证 JSON你的输入会传给 JSON.parse。如果失败,确切的解析错误会立即显示在输入框下方。解析成功会生成一个带类型的值树,驱动后续的转换。
- 2递归类型推断递归的 getType 函数遍历每个节点:基本类型映射为 string、number、boolean 或 null;对象会生成一个新的命名 interface;对象数组会合并所有元素的键,只在部分元素中出现的键变为可选,冲突的值类型用 | 连接。
- 3防冲突的接口命名每个嵌套对象都根据其 JSON 键得到一个 PascalCase 名称(snake_case、kebab-case 和空格都会规范化)。如果两个结构不同的对象会共用同一名称,会追加数字后缀(Data、Data2 …),而不是悄悄覆盖先前的定义。
- 4渲染输出并可下载先输出嵌套接口,再输出根类型,根据你的选择格式化为 export interface 或 export type。结果可以复制到剪贴板或下载为 .ts 文件——全部使用标准 Blob 构建,无需服务器往返。