🧩

JSON 转 TypeScript 接口

粘贴 JSON 自动推断出 TypeScript interface,含嵌套对象与数组

说明:类型是从这份 JSON 推断出来的,不是 JSON Schema。数组里元素结构不一致时会生成联合类型,字段名不是合法标识符时会加引号。

使用说明

JSON 转 TypeScript 接口使用说明



功能简介


拿到一份接口返回的 JSON,要手写 TypeScript 类型很费时间。这个工具直接读 JSON 结构,递归推断出嵌套的 interface。

使用方法


  • 把 JSON 粘贴到输入框,点「填入示例」可以先看一个复杂例子

  • 填好根接口名(默认 Root),选 `interface` 或 `type` 别名

  • 如果字段可能缺失,勾上「字段可选」给每个字段加 `?`

  • 点「生成 TypeScript」,结果按引用顺序输出,子类型在前、根类型在后

  • 点「复制结果」复制走


  • 注意事项


  • 类型是从这一份 JSON 推断出来的:字段为 `null` 时只会得到 `null`,缺字段也看不出来。要更准确请用多份样本或手写补充

  • 数组里元素结构不一致时会生成联合类型,例如 `(A | B)[]`

  • 空数组只能推断出 `unknown[]`,需要你自己补类型

  • 字段名不是合法标识符时会用引号包起来,符合 TypeScript 语法
  • ❓ 常见问题

    数组里的对象类型不一致怎么办?

    工具会为每个不同结构生成一个接口,并把数组元素类型写成联合类型,例如 `(User | Admin)[]`,你可以在生成后按实际业务收窄。

    为什么 null 字段的类型是 null?

    因为只有这一份数据,无法判断它将来会不会是字符串或数字。建议把真实数据里出现过的类型都补上,或手动改成 `string | null`。

    支持生成 Go 或 Java 的类型吗?

    目前只生成 TypeScript。如果想先看看结构,用这个工具推断出的嵌套接口名,改写成其它语言的结构体也不难。