跳到主内容

JSON 转 TypeScript

JSON 转 TypeScript 在浏览器本地将 JSON 样本转换为 TypeScript interface 与 type,支持可选字段、联合/null/Date 推断、根类型名和 .ts 复制下载。

JSON

字符

0 / 50,000

TypeScript

JSON 转 TypeScript

快速开始

1
将有效 JSON 样本粘贴到左侧编辑器。
2
可选设置根类型名,例如 ApiResponse。
3
在右侧查看 TypeScript:对象生成 interface,数组或原始值生成 type。
4
复制或下载生成的 .ts;输入区也可复制或下载 JSON 样本。

常见使用场景

把真实 API 响应快速整理成前端页面、SDK 客户端或接口联调时可直接使用的 TypeScript 类型。

在正式定义接口契约前,先用 JSON 样本观察可选字段、null 与联合类型的推断结果。

把 mock JSON 数据快速转换为测试夹具、Storybook 示例或原型阶段可用的类型定义。

当后端响应结构调整时,用最新 JSON 样本快速检查 User、Meta 等嵌套声明是否需要同步更新。

使用建议

尽量提供有代表性的 JSON 样本。本页基于样本推断类型,没出现的字段或取值不会出现在输出里。
空数组会生成为 unknown[];空对象会生成为扩展 Record<string, unknown> 的 interface,直到你提供更丰富的样本。
嵌套声明会根据属性名做规范化,因此新输出更可能出现 User、Meta 这类名称,而不是旧版的根名前缀形式。
只有在 JSON 合法时才会生成结果。若解析失败,编辑器会提示出错的行号和列号。
合法的自定义根类型名会原样保留;非法名称会被规范化为合法的 PascalCase TypeScript 标识符。

类型推断边界

生成器只根据当前样本推断,不读取 JSON Schema、OpenAPI、GraphQL、文件、URL、JSON Lines 或批量样本。
数组会合并已观察到的元素结构:部分元素缺失的字段会变成可选字段,null 或混合取值会进入联合类型。
类似日期的字符串可能被推断为 Date,但运行时 JSON 值仍然是 string,除非你的代码主动解析它。
对象根节点生成 interface;数组和原始值根节点生成 type;空数组使用 unknown[],空对象扩展 Record<string, unknown>。
根类型名默认 Root。合法自定义名会保留;非法名称和保留字会规范化为 PascalCase。
输出只是静态 TypeScript 声明:不会生成运行时校验器、解析器、序列化器、Zod/Yup/io-ts schema 或 API client。

限制与兼容性

该工具基于样本数据推断类型,而不是基于正式 schema 或接口契约真源。样本里没出现的字段无法被自动猜出。
输入必须是严格 JSON。注释、尾随逗号以及其它 JavaScript 风格语法都会被拒绝。
当前生成的 TypeScript 代码不会自动附带 export 声明;下载 .ts 文件和在代码里添加 export 关键字是两件事。
输出仅为静态 TypeScript 声明,不会生成运行时校验器、解析器、序列化逻辑、Zod schema 或 API client。

隐私与安全

JSON 转 TypeScript 在浏览器本地完成。JSON 输入可能作为浏览器草稿保留。若启用已保存工作区或 WebDAV 同步,JSON 输入、根类型名、输入/输出行号偏好和换行偏好可能随同步保存。生成的 TypeScript、校验错误、行/列高亮、复制状态和撤销历史都由当前输入派生,不会保存为单独结果数据。输入 JSON 下载和 .ts 输出下载只在点击下载时创建。本工具不会上传文件或创建附件。

常见问题

6

可继续使用这些相关工具,完成后续步骤。

所有工具处理都在您的浏览器本地完成。