YamlBox

代码生成器

JSON 至 TypeScript 发生器

粘贴 JSON 响应并输入,准备粘贴 TypeScript。数组项被合并,因此可选字段被检测到,嵌套对象成为命名接口,混合类型成为诚实联合。

转换选项

JSON 样本

示例: 用户对象 · 包含可选字段的列表 —⌘/Ctrl + Enter 转换 · 拖放文件以加载它 · 本地处理

TypeScript

输出是只读的。使用复制、下载或共享将其移出。

如何使用 JSON 至 TypeScript 工具

  1. 粘贴真实回复

    使用包含您在生产中实际看到的可选字段和可为空字段的有效负载 - 越有代表性,推断的类型就越好。

  2. 命名您的根类型

    为根类型指定其在代码库中的名称(User、Order、ApiResponse),并选择接口或类型别名以匹配您的风格指南。

  3. 复制到你的项目中

    将结果粘贴到您的类型文件中。对于运行时验证,请将其与 JSON 模式或运行时验证器(例如 Zod)配对。

这个工具有何不同

  • 合并数组元素形状并将非通用键标记为可选
  • 混合类型的联合(字符串|数字,字符串|null)而不是静默的any
  • 根据其关键路径命名的嵌套对象(地址、证据……)
  • 接口或类型别名输出,具有自定义根名称
  • 可选的 ISO 日期检测来标记时间戳字段

按架构划分的隐私: 此页面不包含接收您输入的分析,并且转换代码在您的选项卡中运行。加载后您可以断开网络并继续工作。

JSON 至 TypeScript — 常见问题

如何检测可选字段?

当输入是对象数组时,将检查每个项目的每个属性。某些物品中缺少的钥匙用“?”标记为可选,而随处可见的钥匙仍然是必需的。

可空字段如何成为类型?

null 被视为其自身的类型,因此有时为字符串有时为 null 的字段被类型化为 string | null — 诚实的类型,而不是编译器信任的谎言。

接口或类型别名——我应该选择哪个?

接口是更常见的约定,并且可以很好地合并在声明中;类型别名对于并集和交集来说读起来更好。从功能上讲,对于生成的数据形状,两者都有效 - 与您现有的代码库匹配。

它可以生成 Zod 或其他运行时模式吗?

不直接。从相同的有效负载生成 JSON 模式并派生验证器,或者手动编写 Zod 模式并将这些接口用于静态端。类型描述编译时的形状;验证器在运行时保护您。

这对于较大的 API 响应有效吗?

是的。粘贴或删除 JSON 文件 — 嵌套是递归推断的。非常大的有效负载受到浏览器内存而不是生成器本身的限制。

正在搜索 “json 转 ts”, “json 转接口”, “快速类型替代方案”?您来对地方了—— 浏览所有19工具.

深入阅读

博客文章 · 6 分钟阅读 JSON至TypeScript:符合实际的类型 将真实 API 响应(可选键、空联合、嵌套类型)的 JSON 接口转换为 TypeScript 接口,并防止生成的类型发生漂移。 阅读指南 →