JSON TO TYPESCRIPT

JSON 转 TypeScript:生成 interface、数组和嵌套类型。

用真实 API 响应快速起草 TypeScript interface。结果适合前端联调和 Node.js 服务建模,提交前仍要补上可选属性和领域类型。

输入 JSON 后生成 TypeScript interface。
JSON 输入0 字符 · 0 行
TypeScript 输出interface
TypeScript 类型定义会显示在这里。
工具以当前样例推断类型。空数组和 null 无法表达完整业务语义,生成后需要按接口文档人工收紧类型。

从一段 JSON 到 interface,会生成什么?

输入样例

{
  "id": 42,
  "roles": ["editor"],
  "profile": {"city": "昆明"}
}

字符串、数字、数组和嵌套对象都在一份样例中出现。

生成方向

interface UserResponse {
  id: number;
  roles: Array<string>;
  profile: UserResponseProfile;
}

嵌套对象会拆成独立 interface,数组按第一个元素推断类型。

生成后必须人工确认的 4 件事

样例情况工具会怎么做你还要确认什么
字段在样例中出现生成必填属性接口是否可能省略该字段,必要时改为 field?: type
字段值为 null生成通用类型根据文档补成 string | null、对象或其他准确类型。
数组为空生成通用数组手动指定数组元素类型,不要长期保留 unknown[]
字段名包含连字符或空格使用字符串属性名确认是否需要在代码中做字段映射或转换。

interface 不是接口文档的替代品

生成器只从一份样例推断结构,不知道分页字段是否总出现、同一数组是否存在不同 item 类型,也不知道时间字符串应该使用什么业务类型。它的价值是让你从零开始时少写一遍字段,而不是替你设计模型。

最可靠的做法是:用字段最全的响应生成初稿,再依据 OpenAPI、接口文档或后端类型定义完成收紧。

常见问题

应该生成 interface 还是 type?
当前工具生成 interface,适合描述对象模型。联合类型、映射类型和复杂泛型需要按项目需求手动补充。
能从多个 JSON 样例合并类型吗?
当前只分析一次输入。若不同响应字段不一致,请以字段最全的样例生成后,再人工补充可选属性和联合类型。
能直接给 Axios 或 fetch 使用吗?
可以把生成的 interface 用作请求返回值的类型起点,但请求层、错误响应和运行时校验仍应单独定义。