Picovert

JSON 转 TypeScript

从一份 JSON 样本生成 TypeScript 接口,自动推断嵌套类型,全程在浏览器中完成。

不收集数据

没有数据库,没有账户。我们无法查看您的文件。

极速

浏览器原生处理 — 无需上传,无需等待。

100%免费

无限制,无水印,无隐藏费用。

无需账户

无需登录。打开工具即可使用。

从 JSON 生成 TypeScript 接口

从真实负载生成类型

当你开始对接一个新的 API 时,获得类型安全最快的方式,就是拿一份真实响应并把它转换成 TypeScript 接口。手动做既慢又容易出错,尤其是当对象嵌套了好几层之后。

粘贴一份 JSON 样本,这个工具会遍历其结构来生成相匹配的接口,并以持有嵌套对象的键来为它们命名,使输出读起来就像你亲手写的一样。

可选字段、联合类型与合并的数组形状

推断不止于显而易见的部分。当一个数组持有对象时,它们的形状会被合并成单个接口:某些元素缺失的键会变成带问号的可选字段,而在各元素中持有不同类型的字段会变成像 number | string 这样的联合类型。

空数组会变成 unknown[],而不是给出一个错误的猜测;不是合法标识符的键会被加上引号,从而保证生成的代码始终能编译通过。

可读、可直接粘贴的输出

嵌套接口会在使用它们的类型之前输出,重复的名称也会被自动消歧,因此你可以把结果粘贴进 .ts 文件而无需重新排列任何东西。你还可以重命名根接口,使其与你的领域相匹配。

生成器是从你给出的样本进行推断的,所以你的 JSON 越有代表性(包括可选字段和边缘情况字段),得到的类型就越准确。

本地处理,绝不上传

整个过程都在你的浏览器中运行。你的 JSON 往往包含真实的 API 数据,它绝不会上传到服务器。

生成是即时的,而且页面加载后会继续离线工作。

常见问题

嵌套对象是如何处理的?

每个嵌套对象都会成为它自己的接口,以包含它的键命名,并被父级引用。接口会按顺序排列,使依赖项先出现。

字段不同的对象数组怎么办?

它们的形状会被合并成一个接口。某些元素缺失的键会变成可选字段,类型不同的字段会变成像 number | string 这样的联合类型。

我可以重命名根类型吗?

可以。根接口默认为 Root,你可以改成任何合法的 TypeScript 标识符。

我的 JSON 会被上传吗?

不会。类型生成完全在你的浏览器中进行,你的数据绝不离开你的设备。