JSON → TypeScript 类型
从 JSON 样本即时推导 TypeScript 接口
本地运行
loading…
关于此工具
粘贴一份 JSON 样本——API 响应、配置文件——得到从中推导的 TypeScript 接口:嵌套对象成为嵌套类型,数组获得元素类型(混合内容用联合类型),不是合法标识符的键会被正确加引号。
生成的类型是起点而不是契约:推导只看到一份样本,样本里恰好为 null 的字段就被推为 null,而缺席的可选字段它根本无从知晓。输出刻意保持朴素——没有装饰器、没有运行时校验——你可以贴到任何地方再细化。
对请求之间会变化的字段,再跑一份样本手动合并,或在结构稳定后升级到 schema 优先的工具(OpenAPI、zod)。而对于日常「我就想给这个响应弄个类型」的时刻,一次粘贴就够了。
常见问题
- 为什么我的可空字段被推成了纯 null?
- 推导只看到你粘贴的样本。如果字段在那里是 null,它就只知道 null。生成后改成 string | null(或真实类型)——或者粘一份该字段有值的样本。
- 可选字段怎么处理?
- 检测不出来——单个样本无法区分「总是存在」和「这次恰好存在」。样本里缺席的字段在类型里也缺席。已知 API 会省略的字段,请手动标记为可选(name?:)。
- 混合类型的数组会产生什么?
- 联合类型:[1, "a"] 推导为 (number | string)[]。空数组推导为 unknown[],因为没有元素可看——知道真实元素类型后自行替换。
- 该用推导的类型还是 zod 这样的 schema 库?
- 推导的接口只在编译期存在——运行时什么也不校验。内部工具和快速补类型用它正好;运行时的不可信输入,应该定义 zod/valibot schema 并从中派生静态类型。