TypeScript转JSON Schema能做什么?
TypeScript转JSON Schema工具是一款纯前端在线工具,用于将TypeScript类型定义转换为JSON Schema。支持interface接口、type类型别名、enum枚举、基本类型、数组、嵌套对象、联合类型、可选属性和字面量类型。转换后的JSON Schema可用于API文档、表单验证、代码生成等场景。所有转换在浏览器本地完成,数据绝不上传服务器。
核心功能
- 接口转换:将TypeScript interface转换为JSON Schema的object类型,自动提取required字段
- 类型别名:支持type定义的转换,包括联合类型、交叉类型和字面量类型
- 枚举支持:将TypeScript enum转换为JSON Schema的enum数组
- 联合类型:字面量联合转为enum,类型联合转为oneOf
- 嵌套对象:递归转换嵌套的interface和type引用
使用教程
步骤1:选择JSON Schema版本(Draft 2020-12或Draft 7)。
步骤2:在文本框输入TypeScript类型定义,或点击"加载示例"。
步骤3:点击"转换Schema"或使用Ctrl+Enter,查看生成的JSON Schema。
步骤4:点击"复制Schema"复制到剪贴板,或"下载JSON"保存为文件。
应用场景
API文档
将TypeScript接口定义转换为JSON Schema,用于OpenAPI/Swagger文档生成,确保前后端类型一致。
表单验证
利用JSON Schema驱动前端表单验证(如ajv、jsonschema库),从TypeScript类型自动生成验证规则。
代码生成
从TypeScript类型生成JSON Schema,再用于生成其他语言的类型定义、Mock数据或文档。
配置验证
将配置文件的TypeScript类型转为JSON Schema,用于验证JSON/YAML配置文件的正确性。
扩展知识
JSON Schema是描述JSON数据结构的标准,当前最新版本为Draft 2020-12。TypeScript类型系统和JSON Schema有天然对应关系:string对应{"type":"string"},number对应{"type":"number"},interface对应{"type":"object","properties":{...}}。可选属性prop?: type不出现在required数组中。联合类型'a'|'b'转为{"enum":["a","b"]},string|number转为{"oneOf":[{"type":"string"},{"type":"number"}]}。数组Type[]转为{"type":"array","items":{...}}。
常见问题 (FAQ)
支持哪些TypeScript类型?
支持interface、type别名、enum枚举、基本类型(string/number/boolean)、数组、嵌套对象、联合类型、可选属性和字面量类型。
常见问题