免费在线 JSON 转 TypeScript 接口工具,自动生成 interface 和 type,支持嵌套对象和数组
摘要:免费的 JSON 转 TypeScript 接口工具,自动生成 interface 与 type,嵌套对象按键名生成具名类型,混合数组生成联合类型,智能标记可选与 null 处理。
本地工具可在 DevTools → Network 搜索输入内容,通常不会出现在请求中。
下一步
使用指南
有一份 API JSON,却要手写 interface 时最容易漏字段、把可选写成必填。本工具从 JSON 样例推断 TypeScript 类型:可选 interface 或 type、控制可选策略与 null 处理,嵌套对象自动拆成具名类型——全部本地生成。
1. 生成类型
推断质量取决于样例质量:如果某字段有时缺失,样例里也要体现缺失或显式 null,否则会被标成必填。数组会遍历全部元素:元素类型不一致时生成联合类型(如 (string | number)[]),元素是对象且同结构时合并为单个 interface,只在部分元素出现的字段标成可选。空数组会落成 unknown[]。
- 粘贴一份有代表性的 JSON(覆盖真实会出现的字段与嵌套)。
- 选择输出为 interface 或 type,按需打开 export。
- 调整可选策略(全部可选 / 全部必填 / 智能)与 null 处理(any / unknown / 标成 optional),复制结果进项目。
2. 选项怎么选
- 智能可选:根据值是否为 null/undefined 倾向标 optional,适合真实响应样例。
- 全部必填:适合你确信契约稳定、想让编译器逼出缺字段的场景。
- null → optional:把 null 当成「可能没有」,而不是 any 黑洞。
- 嵌套对象按键名生成独立的 interface/type(如 address → Address、users → User):生成后按领域语义重命名一次更清晰。
3. 生成后建议立刻做的三件事
本工具不做运行时校验。类型只在编译期生效;运行时仍需 JSON Schema 或 zod 等方案。先格式化 JSON、再生成类型,能少踩尾逗号与注释导致的解析失败。
- 用真实第二份响应再生成一次,diff 两边类型,抓住偶发字段。
- 把 any/unknown 收敛成业务联合类型或枚举,不要长期留在边界。
- 若还要给后端或其他语言用,同一份 JSON 可再跑 JSON→Go / JSON→Java。
4. 类型推断的收敛策略
单样本生成 TypeScript 类型的固有局限是「以偏概全」:一个字段在样本里是数字,真实数据里可能是 null。工程上的两种收敛路径:多样本联合(把若干真实响应喂给工具,字段类型取并集,nullable 自动浮现)与宽松模式(unknown 兜底 + 逐步收紧)。本工具支持深浅两档:严格档适合稳定的第三方 API,宽松档(加 ? 与 null 联合)适合仍在演进的自家接口。异构数组是另一个分叉点——元素结构不一致时,要么联合类型、要么拆成判别式联合(加 kind 标签),一键工具只能选前者,后者需要人工设计。
5. 生成类型的下游用法
- 类型只做编译期契约:运行时校验(zod/valibot 从类型反向 schema)才是边界防御,两者配合而非替代。
- 对接 OpenAPI 的服务优先从 schema 生成(openapi-typescript),样本生成只作为无文档接口的兜底。
- 大接口的生成结果按领域拆文件再手动整理——单个千行 types.d.ts 的可维护性趋近于零。
6. 样例覆盖与验收
用至少两份真实响应再生成一次,diff 类型抓住偶发字段。空数组会落成 unknown[];异构数组元素会成联合类型。生成结果是编译期契约,运行时仍需 zod / JSON Schema。嵌套对象按键名拆具名类型后,按领域语义重命名一次更易维护。无 OpenAPI 文档时本页是兜底,有 schema 时优先从 schema 生成。
常见问题
安全。类型推断全部在本地运行,数据不离开你的浏览器;生产响应若含敏感字段,先脱敏再粘贴更稳妥。
支持。嵌套对象按键名生成独立的 interface(如 address → Address、users → User),生成后按领域语义重命名一次更清晰;对象数组元素同结构时合并为一个类型,缺字段标成可选;空数组会落成 unknown[]。
工具会遍历全部数组元素:原始类型混合时生成联合类型(如 (string | number)[]);元素是对象且结构一致时合并为单个 interface,只在部分元素出现的字段自动标成可选;共享键类型冲突时退化为元素类型并集,便于人工再拆。
可选 interface 或 type 输出、按需开启 export;可选策略有全部可选 / 全部必填 / 智能三档——智能档根据 null/undefined 倾向标 optional,适合真实响应样例;null 处理可选 any / unknown / 标成 optional。注意推断质量取决于样例:某字段有时缺失,样例里就要体现,否则会被标成必填。
不能。类型只在编译期生效,本工具不做运行时校验;边界防御要用 JSON Schema 或 zod 等方案(可从类型反向生成 schema),两者是配合关系而非替代。
有 schema 时优先用 openapi-typescript 等从 schema 生成,本工具是无文档接口的兜底。生成后建议用第二份真实响应再跑一次并 diff 两边类型,抓住偶发字段;再把 any/unknown 收敛成业务联合类型或枚举。
相关工具
相关文章
JSON 转 TypeScript 接口:自动生成类型定义完全指南
手把手教你如何将 JSON 数据快速转换为 TypeScript interface 和 type 定义,提升开发效率和代码质量
JSON 大整数精度陷阱:雪花 ID 被静默改写时怎么查
超过 2^53-1 的 JSON 数字经 JSON.parse 会尾部舍入。对照劣质格式化与无损路径,并互链 JWT/Base64 与站内 JSON 工具。
JSON 解析报错 Unexpected token?5 种常见原因和修复方法
JSON 解析报错 Unexpected token?本文总结 5 种最常见的 json 格式错误原因:尾逗号、单引号、未转义字符、BOM 头、注释,逐一给出修复方法和代码示例。