直接回答
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 {2user: User;3}45export interface Address {6city: string;7zip: string;8}910export interface Profile {11age: number;12address: Address;13}1415export interface User {16id: number;17name: string;18email: string;19isActive: boolean;20roles: string[];21profile: Profile;22lastLogin: string;23}24
使用方法
- 粘贴/上传 JSON,或使用受支持的公开示例。
- 设置根类型名、interface/type、optional 策略、数组语法、嵌套提取、readonly/export 与分号。
- 检查缺失的 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 工具。
相关工具
JSON 转 Zod Schema 工具为 TypeScript 运行时校验生成 Zod Schema 起点。JSON Schema 生成器生成独立 JSON Schema,并明确选择方言版本。在线 JSON 格式化工具在转换前格式化并校验 JSON,或在转换后检查结果。
生成类型声明,检查边界情况,并在需要时补充运行时校验。