🔷 JSON 到 TypeScript -- 瞬间生成接口,免费且离线
粘贴任何 JSON 对象或数组,此工具会立即生成 TypeScript 接口(或类型别名)定义 —— 完全免费,无需登录,无需上传,100% 在您的浏览器中运行。嵌套对象会变成嵌套接口,对象数组会合并成一个带有可选字段的类型结构,混合类型的数组会自动生成联合类型。
隐私优先设计. 此工具完全在您的浏览器中运行 — 您输入的任何内容都不会上传或存储,并且可以离线使用。
关于
此 JSON 到 TypeScript 转换器使用纯客户端的类型推断遍历器 —— 不使用任何外部库,不调用服务器。它会递归访问您 JSON 中的每个节点:原始值映射为 string、number、boolean 或 null;嵌套对象生成命名的子接口;对象数组会合并所有元素的形状,使得某些元素中缺失的键变为可选(key?: Type);混合类型的数组会生成类似 (string | number)[] 的联合类型。您可以选择输出为 interface 或 type 别名,并设置根接口名称。所有操作都在您的浏览器中完成 —— 您的 JSON 数据永远不会被发送到任何地方。
如何使用
- 将您的 JSON 粘贴到输入框中 —— 对象、数组或嵌套结构都可以。
- 设置根接口名称(默认:RootObject)并选择输出为 interface 或 type 别名。
- 点击转换为 TypeScript(或按 Ctrl+Enter)以立即生成定义。
- 查看 TypeScript 输出 —— 嵌套接口会先出现,根接口最后出现。
- 点击复制,将结果复制到剪贴板并直接粘贴到您的 TypeScript 项目中。
常见问题
- 此工具会将我的 JSON 上传到服务器吗?
- 不会。所有处理都在您的浏览器中通过 JavaScript 完成。您的 JSON 数据永远不会离开您的设备。
- 它如何处理具有不同形状的对象数组?
- 所有元素的形状会合并成一个接口。每个元素中都存在的键是必需的;任何元素中缺失的键会标记为可选(带 ?)。
- interface 和 type 输出模式之间有什么区别?
- interface 使用 TypeScript 接口声明(可扩展,推荐用于对象形状)。type 使用类型别名(更灵活,支持在根级别使用原始类型和联合类型)。对于对象形状,两者产生的结果是等效的。
- 它能处理深层嵌套的 JSON 吗?
- 可以。类型遍历器是完全递归的——每个嵌套对象都会生成自己的命名接口,接口按依赖顺序输出(最深的优先),因此 TypeScript 编译时不会出现前向引用错误。
- 如果我的 JSON 数组包含混合类型,如字符串和数字,会怎样?
- 混合类型数组会生成联合类型。例如,[1, 'hello', true] 会变成 (number | string | boolean)[]。如果数组只有一个一致的类型,则不需要联合类型。
- 此工具会上传我的数据吗?
- 不会。所有操作都在您的浏览器中完成,因此您的数据永远不会离开您的设备 — 甚至在页面加载后也可以离线使用。