JSON Schema转TypeScript类型生成器
输入JSON Schema自动生成对应的TypeScript interface代码,支持嵌套对象、数组、enum联合类型、required可选字段及$ref引用。
使用说明
1. 在左侧文本框输入 JSON Schema 内容(需为合法 JSON),可指定顶部「根类型名称」自定义生成的根接口名(默认为 Root)。
2. 右侧会实时生成对应的 TypeScript 类型定义代码:properties 转换为接口字段,required 数组中列出的字段生成为必填属性,未列出的字段自动加 ? 变为可选属性。
3. 支持嵌套 object(生成内联对象字面量类型)、array(含数组元素为对象/数组的嵌套情况)、enum(生成字符串或数字字面量联合类型,如 admin | member | guest 这样的字面量联合类型)。
4. Schema 中 definitions 或 $defs 里定义的每个子 schema 会各自生成一个独立的 interface,正文中通过 $ref: #/definitions/Xxx 引用它们时会自动替换为对应的类型名进行引用,而不是重复内联展开。
5. 输入有误(JSON 格式错误、根节点不是对象等)时,右侧会显示具体错误提示。点击「加载示例数据」可快速填入一个包含上述各类语法的完整示例 Schema。
功能介绍
本工具解析 JSON Schema(覆盖 draft-07 常见语法子集)并生成对应的 TypeScript interface / type 定义代码,省去手写类型定义的重复劳动。
支持的语法覆盖:基础类型映射(string/number/integer/boolean/null)、properties 与 required(非必填字段自动加 ?)、items(数组元素类型,包括元素本身是嵌套对象或嵌套数组的情况)、enum(生成字面量联合类型)、简单本地 $ref 引用(指向同一份 Schema 内 definitions / $defs 中定义的类型,生成独立 interface 并正确引用,而非重复内联)、嵌套 object(生成内联对象字面量类型)。
暂不支持 allOf / oneOf / anyOf 组合语义和跨文件的 $ref 引用,这类复杂 Schema 建议使用专门的代码生成工具链处理。