JSON 转 TypeScript 根据一个实际样本递归推断 interface。字符串、数字、布尔值和 null 映射为对应类型,对象生成具名接口,数组使用第一个元素推断成员类型;根数组的对象类型命名为 Item,根对象命名为 Root。
这是从样本得到的起点,不是接口契约。只在其它记录出现的字段、可能缺失的字段以及联合类型无法从单个样本可靠推断,因此生成后必须结合真实 API 文档补上可选标记和更精确类型。
从 JSON / JSONC / JSON5 样本推断并生成 TypeScript interface 类型定义,浏览器本地完成,方便对接接口。
TypeScript 类型将显示在这里
JSON 转 TypeScript 根据一个实际样本递归推断 interface。字符串、数字、布尔值和 null 映射为对应类型,对象生成具名接口,数组使用第一个元素推断成员类型;根数组的对象类型命名为 Item,根对象命名为 Root。
这是从样本得到的起点,不是接口契约。只在其它记录出现的字段、可能缺失的字段以及联合类型无法从单个样本可靠推断,因此生成后必须结合真实 API 文档补上可选标记和更精确类型。
尽量选择字段完整、包含典型数组元素的响应,避免用空数组或只含 null 的记录。
工具递归创建嵌套 interface,并把不合法的标识符 key 保留为带引号属性。
补充可选属性、联合类型、日期别名和不同数组成员,再复制到项目。
注意生成的字段全部是必填,且 null 值无法推断出真实类型:这两处通常需要人工修正。
{
"id": 7,
"name": "kit",
"tags": ["a"],
"owner": null
}interface Root {
id: number;
name: string;
tags: string[];
owner: null;
}先从实际响应得到基础类型,再由开发者按文档收紧,减少重复手写字段。
把缺少类型声明的 JSON 配置转换成可读接口,帮助识别嵌套结构。
对方只提供文档和示例响应时,先从样本生成 interface,再按文档补上可选性和联合类型。