Skip to main content
appkiro.com

JSON 转 TypeScript interface/type 生成器

从示例 payload 生成易读的 TypeScript 声明,并与真实 API 合同对照。 可选择 interface/type、嵌套类型、optional 与代码风格。

直接回答

JSON 转 TypeScript 会根据观察到的值生成编译期声明,可改善编辑器提示和构建检查;这些类型在运行时会被移除,不能验证收到的数据。

生成类型声明,检查边界情况,并在需要时补充运行时校验。

1

输入 JSON

已载入示例 JSON。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2

输出 TypeScript

1export interface Root {2  user: User;3}4 5export interface Address {6  city: string;7  zip: string;8}9 10export interface Profile {11  age: number;12  address: Address;13}14 15export interface User {16  id: number;17  name: string;18  email: string;19  isActive: boolean;20  roles: string[];21  profile: Profile;22  lastLogin: string;23}24 

使用方法

  1. 粘贴/上传 JSON,或使用受支持的公开示例。
  2. 设置根类型名、interface/type、optional 策略、数组语法、嵌套提取、readonly/export 与分号。
  3. 检查缺失的 union/null/optional 情况,再复制或下载 .ts

主要功能与设置

  • 可生成 interface 或 type alias。
  • 控制 optional 字段和数组语法。
  • 提取嵌套声明,并添加 readonly/export。
  • 可优先使用 unknown 而非 any,并按观察值生成字符串 literal union。

支持的输入与输出

输入: JSON 文本或文件, 受支持的公开 URL. 输出: .ts.

适用场景

  • 从 API 响应示例创建前端 model。
  • 记录复杂集成的嵌套结构。
  • 与 Zod 配合,同时获得静态类型与运行时校验。

应该选择哪种工作流?

需要“可生成 interface 或 type alias。 ”时使用 JSON 转 TypeScript 工具;需要“生成嵌套的 Zod object、array 与 scalar schema。 ”时使用 JSON 转 Zod Schema 工具。

隐私与数据路径

当前实现中,粘贴/上传内容在浏览器内处理;“Extract from URL”会通过服务器代理获取来源。

限制与故障排查

  • 单个 payload 无法展示所有 optional、nullable 与 union 变体。
  • 解析不可信数据时,应再使用 Zod 或其他运行时 validator。
  • 没有适用于所有设备的通用大小保证;大数据性能取决于浏览器内存和设备能力。

FAQ

TypeScript 类型会在运行时验证 JSON 吗?

不会。 TypeScript 类型编译后不存在。 应用需要拒绝错误 payload 时,应使用 Zod 或其他运行时校验器。

数据会上传到服务器吗?

当前实现中,粘贴/上传内容在浏览器内处理;“Extract from URL”会通过服务器代理获取来源。

文件或数据大小有什么限制?

没有适用于所有设备的通用大小保证;大数据性能取决于浏览器内存和设备能力。

可以在手机上使用吗?

该页面是网页工具,可能可在现代移动浏览器中运行,但文件选择、内存占用和跨设备兼容性尚未在所有设备上验证。 较大或复杂输入建议使用桌面浏览器。

应该选择哪种工作流?

需要“可生成 interface 或 type alias。 ”时使用 JSON 转 TypeScript 工具;需要“生成嵌套的 Zod object、array 与 scalar schema。 ”时使用 JSON 转 Zod Schema 工具。

相关工具

生成类型声明,检查边界情况,并在需要时补充运行时校验。