JSON 转 TypeScript
从 JSON 示例生成 TypeScript 接口。
你的 JSON 完全在你的浏览器中解析与转换,因此它留在你的设备上,不会上传到任何服务器。
需要 Go、Rust 或 Python 类型?试试 JSON 转代码。
关于 JSON 转 TypeScript
这款 JSON 转 TypeScript 转换器能在几秒内将示例 JSON 对象或数组转为可直接使用的 TypeScript 接口。粘贴真实的 API 响应,它会推断字段类型、将子对象嵌套为各自命名的接口、把对象数组合并为单一结构,并将部分元素中缺失的键用问号标记为可选。它专为前端和后端开发者、QA 工程师,以及任何在搭建类型化客户端时宁愿从 JSON 生成 TypeScript 类型而非手写它们的人而打造。在探索陌生接口时,可将它用作快速的 TypeScript 接口生成器,或用它让你的模型与示例数据保持同步。一切都在你的浏览器本地运行,因此你粘贴的 JSON 在你的设备上处理,不会上传到任何服务器。
功能特性
- 从任意 JSON 对象或数组生成命名的 TypeScript 接口
- 将嵌套对象转为各自导出的接口,并采用 PascalCase 命名
- 将对象数组合并为涵盖每个键的单一接口
- 将部分元素中缺失的键用问号标记为可选
- 从你的示例值推断基本类型、数组类型、联合类型和 null 类型
- 允许你重命名根接口以匹配你的模型
- 校验 JSON 并精确定位语法错误的行号与列号
- 复制结果或将其下载为 .ts 文件
如何使用 JSON 转 TypeScript
- 将你的 JSON 对象或数组粘贴到输入框中。
- 将「根接口名」设为匹配你的模型,或保留为 Root。
- 在输出面板中查看生成的 TypeScript 接口。
- 复制结果或将其下载为 .ts 文件。
示例
输入
{ "id": 1, "name": "Ada", "tags": ["a", "b"] }
输出
export interface Root {
id: number;
name: string;
tags: string[];
}
一个扁平的 JSON 对象会变成单个带类型的接口。
常见错误与故障排除
- 输出显示一个带行号和列号的 Invalid 错误。 — 该 JSON 存在语法问题,例如末尾逗号、单引号或未加引号的键。在报告的行号与列号处修复它,接口便会重新生成。
- 某个你预期存在的字段被用问号标记为可选。 — 该键在你的数组示例中至少有一个元素里缺失。如果它应始终为必填,请在每个元素中都包含它。
- 某个属性的类型显示为 unknown。 — 该键的每个示例值都是 null 或 undefined,因此无法推断出具体类型。请为该字段提供一个含真实值的示例。
- 粘贴像数字或字符串这样的裸值只会生成一个类型别名。 — 这是预期行为。如果你想要命名接口而非单个 export type 类型别名,请将该值包裹在对象或数组中。
常见问题
- JSON 转 TypeScript 转换器是什么?
- 它是一款工具,会读取示例 JSON 对象或数组并生成匹配的 TypeScript 接口,推断每个字段的类型,让你能将结果直接放入代码库中。
- 如何将 JSON 转换为 TypeScript 接口?
- 将你的 JSON 粘贴到输入框中,可选地设置「根接口名」,然后从输出面板复制或下载生成的接口。
- JSON 转 TypeScript 如何处理对象数组?
- 它会将每个元素的键合并为一个接口。任何在部分元素中缺失的键都会用问号标记为可选,以使该类型涵盖整个数组。
- 嵌套对象是如何被转换为 TypeScript 的?
- 每个嵌套对象会成为各自导出的接口,并采用 PascalCase 命名,父级通过类型引用它,而非内联其结构。
- 对于 null 或混合类型的值会怎样处理?
- null 值会生成与 null 的联合类型,而持有多种基本类型的字段会成为联合类型,例如 string | number。
- 将 JSON 转换为 TypeScript 时,我的 JSON 会被发送到任何地方吗?
- 不会。JSON 转 TypeScript 的转换完全在你的浏览器中运行,因此你粘贴的数据在本地处理,绝不离开你的设备。
相关工具
全部 ArrayKit 工具