按 ⌘K 切换工具
FORMAT & CONVERT
JSON → TypeScript接口生成器
从JSON生成TypeScript接口(interface)定义。
json-code
§01 关于此工具
概述
粘一份 JSON 载荷进来,就能拿到对应的 TypeScript interface 声明——在给一个没有文档的 API 做封装、给配置文件加类型,或者从一份样本响应起步搭 DTO 时,都很省事。基本类型分别映射到 string、number 和 boolean;嵌套对象被抽成独立的 interface;不能作为合法标识符的属性名会自动加上引号。子 interface 的名字由它所在的属性键推导,父级按名字引用它,所以你拿到的是一组彼此引用的声明,而不是一个巨大的内联类型。
使用方法
- 在 Root type name 里设定顶层 interface 的名字(默认是
Root)。 - 把样本粘贴到 JSON 区域。
- 从 TypeScript 输出里复制生成的声明,它随你的输入更新。
示例
-
{"id":1,"name":"Alice","meta":{"active":true}}→interface Root { id: number; name: string; meta: Meta; }以及另外一个
interface Meta { active: boolean; }。
说明
类型是从单一样本里推断出来的:null 值的类型就是 null,可选字段无法被识别出来,联合类型也永远不会出现。请把输出当作一个起点,再对照真实的 API 契约调整可空性和可选性。数组的元素类型只看第一个元素,空数组会得到 unknown[]。
FAQ
我的 JSON 会发到服务器吗?
不会。解析和类型生成都在浏览器里完成。不上传任何内容,所以把含真实数据的 API 响应粘进来也没问题。
嵌套对象是怎么处理的?
每个嵌套对象都会成为一个单独命名的 interface,名字由它的属性键推导(例如一个 "meta" 属性会产出 Meta 这个 interface),父级则按名字引用它。
数组的类型是怎么定的?
元素类型由数组的第一个元素推断。空数组的类型是 unknown[],如果你知道真实的元素类型,请手动改掉。