JSON 到 TypeScript

免费的 JSON 到 TypeScript 转换器。使用自动推断的嵌套对象、数组和联合从 JSON 生成接口或类型,复制结果,无需注册。

由 Shehzad Munir 构建和维护 ·

JSON 到 TypeScript
Loading Loading JSON to TypeScript
Share

来自真实数据的类型化模型

立即将任何 JSON 转换为 TypeScript 接口或类型,并自动推断嵌套对象、数组、联合和可选属性。

手写 TypeScript 接口来匹配 API 响应是乏味且容易出错的。粘贴 JSON 有效负载,此工具会遍历结构,生成具有正确类型字段、对象嵌套接口和数组元素类型的匹配接口(或类型别名)。混合数组成为联合类型,因此您的模型可以准确反映数据。

特征

  • 生成接口或类型别名
  • 处理嵌套对象和数组
  • 从混合数组推断联合类型
  • null 的可选属性
  • 自定义根类型名称
  • 在本地运行:代码从未上传

如何使用JSON 到 TypeScript

  1. 1

    粘贴 JSON

    放入一个对象或数据数组。

  2. 2

    设置选项

    选择接口或类型,命名根,将可为空标记为可选。

  3. 3

    查看类型

    嵌套接口是自动生成的。

  4. 4

    复制

    将 TypeScript 复制到您的项目中。

常见用例

  • 快速输入 API 响应
  • 从 JSON 夹具生成模型
  • 为配置文件创建接口
  • 新集成的引导类型

详细指南

根据您的风格调整输出

选择是否发出接口或类型别名、命名根类型,以及将可为空的字段标记为可选。生成的代码会实时更新并准备好粘贴到您的项目中。这一切都在您的浏览器中运行,因此私有 API 有效负载和内部架构永远不会离开您的计算机。

如何推断类型

转换器读取您的 JSON 并将每个值映射到 TypeScript 类型:字符串、数字和布尔值变成字符串、数字和布尔值,嵌套对象变成它们自己的命名接口,数组变成类型化数组。当数组包含不同类型的值时,结果是一个并集,例如 (string | number)[]。 null 值会变为 null,因为示例无法显示设置后该字段包含的内容。不是有效标识符的属性名称(例如“first-name”)会被引用,以便输出始终可以编译。

从样本数据中获取准确的类型

推断类型的好坏取决于样本的好坏。如果某些 API 响应中缺少某个字段,请使用 ? 将其标记为可选。生成后,如果某个字段在生产中可以为空,则将其扩展为 string |无效的。使用您能找到的最完整的回复,最好是包含所有可选字段的回复。对于您无法控制的 API,请将生成的类型与运行时验证配对,例如 Zod 或 io-ts,因为 TypeScript 类型会在运行时消失并且不会捕获更改的 API。日期以字符串形式传入 JSON,因此如果您需要 Date 对象,请自行转换它们。

常见问题

如何将 JSON 转换为 TypeScript 接口?

粘贴您的 JSON,该工具会立即生成匹配的接口,为对象创建嵌套接口并推断数组元素类型。将其直接复制到您的代码中。

它处理嵌套对象和数组吗?

是的。嵌套对象成为它们自己的命名接口,数组由它们的元素类型化。混合类型的数组会产生一个联合,如 (string | number)[]。

我可以获取类型别名而不是接口吗?

是:切换选项以发出“类型”别名而不是“接口”声明,并重命名根类型以适合您的项目。

我的 JSON 上传到任何地方了吗?

不会。解析和生成完全在您的浏览器中进行,因此敏感负载永远不会离开您的设备。

如何从 JSON 生成 TypeScript 接口?

粘贴 JSON(例如 API 响应),为根命名,该工具会推断类型并生成现成的接口,包括嵌套对象和数组。它在本地运行,因此真正的有效负载保持私密。

它是否处理嵌套对象和可选属性?

是的。嵌套结构成为它们自己的命名接口,数组获取元素类型,并且您可以将字段标记为可选,以便类型与真实的、有时会丢失的数据相匹配。

我可以输出类型别名而不是接口吗?

是的。根据您的代码库的风格选择接口或类型输出;两者都根据推断的 JSON 形状生成准确的 TypeScript。

来自杂志

All articles →