Skip to content

JSON 转 TypeScript 转换器

粘贴 JSON 即时获得 TypeScript 接口,100% 在浏览器中运行,数据永不离开页面。支持 interface 或 type、嵌套对象、数组、可选字段。免费,无需注册。

无追踪 浏览器中运行 免费
选项
输出
可选字段
0 字符
TypeScript 输出
0
已对照真实 API 负载和 TypeScript 编译器输出进行验证。 — Go Tools 工程团队 · 2026年6月1日

什么是 JSON 转 TypeScript?

JSON 转 TypeScript 会读取一个 JSON 值,并生成匹配的 TypeScript interface 或 type 定义 — 省去为 API 响应和配置文件手写样板代码的工作。粘贴一段负载,几秒内即可获得可用于生产的类型,对嵌套对象、数组和可选字段都完整标注类型。

示例

API 响应

{"id":101,"name":"Ada Lovelace","email":"ada@example.com","active":true,"roles":["admin","user"]}

将典型的 REST API 用户负载转换为带类型的 interface,可直接放入你的客户端代码。

嵌套对象

{"order":{"id":"A-1","total":42.5,"customer":{"name":"Sam","vip":false}}}

嵌套对象会成为独立命名的 interface(Order、Customer),并按字段引用。

对象数组(可选字段)

{"users":[{"id":1,"nick":"x"},{"id":2}]}

部分数组元素缺失的键会被推断为可选(nick?: string)。

混合类型与 null 值

{"tags":["a","b"],"score":null,"meta":[1,"two"]}

null 值和混合数组会被如实标注类型(null、(string | number)[])。

GitHub 风格负载

{"login":"octocat","id":1,"public_repos":2,"plan":{"name":"pro","private_repos":50}}

snake_case 键名原样保留;嵌套的 plan 会成为独立的 interface。

如何将 JSON 转换为 TypeScript

  1. 1

    粘贴你的 JSON

    将 JSON 对象、数组或 API 响应放入输入框,转换即刻开始。

  2. 2

    调整输出

    选择 interface 或 type、设置根类型名称、切换 export,并为可选字段选择 ?: 或 | null。

  3. 3

    复制或下载

    一键获取生成的 TypeScript,直接粘贴到你的代码库中。

转换原理

结构推断
每个对象都会成为一个命名 interface;结构相同的对象会被去重,因此你得到的是一个类型而非多份副本。
数组合并
对象数组会逐键合并;部分元素缺失的键会被标记为可选。
100% 浏览器端
解析和生成都在浏览器中运行,没有任何网络请求,因此你的数据保持私密。

编写整洁 TypeScript 类型的技巧

为根类型命名
设置一个有意义的根名称(如 User、ApiResponse),而非默认的 Root,让代码更易读。
数据稀疏时优先用可选而非 null
对可能缺失的字段使用 ?:,仅当 API 明确返回 null 时才使用 | null。

常见问题

如何将 JSON 转换为 TypeScript interface?
将 JSON 粘贴到输入框中,转换器会在浏览器中即时读取并在右侧生成 TypeScript interface。点击「复制」即可获取结果 — 无需上传,无需账户。
JSON 数据应该用 `type` 还是 `interface`?
两者都可以。`interface` 是描述对象结构的惯用写法,编辑器错误提示也略好;`type` 则便于处理联合类型和交叉类型。用「输出」开关在两者之间切换,保留你代码库偏好的那种。
嵌套对象和数组是如何处理的?
嵌套对象会成为独立命名的 interface(例如 `address` 字段会生成一个 `Address` interface)。对象数组会合并为一个元素 interface;基本类型数组会变成 `string[]` 这样的类型化数组。
可选字段和 null 字段是如何处理的?
当某个键只出现在部分数组元素中时,它会被标记为可选。用「可选字段」开关选择 `?:`(可选)或 `| null`(显式可空)。字面 null 值会被标注为 `null` 类型。
如何在 VSCode 中自动从 JSON 生成 TypeScript 类型?
你可以安装扩展,但其实没必要。本工具完全在浏览器中运行 — 粘贴、复制、搞定 — 无需安装、配置或维护任何插件。
我的 JSON 数据是否私密安全?
是的。转换 100% 在浏览器中通过 JavaScript 完成。你的 JSON — 包括任何 token、ID 或客户数据 — 永不离开页面,也永不发送到服务器。
本工具免费吗?需要账户吗?
完全免费,无需注册,无使用限制,也没有广告干扰工作区。
它能识别日期或枚举吗?
日期字符串会保留为 `string`(比猜测更安全)。字符串值会被标注为 `string` 而非字面量联合类型,因此当数据变化时输出仍保持稳定。