TS 接口转 Schema
粘贴 TypeScript interface / type 声明转为 JSON Schema(draft-07),支持可选属性、数组、元组、字面量联合枚举、交叉类型、Record、索引签名与跨声明 $ref,本地生成
支持范围
- 可选
?不进入 required;readonly修饰自动忽略。 - 字面量联合合成
enum;原始类型联合合成type数组。 - 引用其它已声明类型生成
$ref,全部声明汇入definitions。 - 复杂工具类型(Pick/Omit 等)暂不支持,会降级为任意值并在下方提示。
JSON Schema(根:Address)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$ref": "#/definitions/Address",
"definitions": {
"Address": {
"type": "object",
"properties": {
"street": {
"type": "string"
},
"city": {
"type": "string"
},
"zip": {
"type": "number"
}
},
"required": [
"street",
"city"
],
"additionalProperties": false
},
"Role": {
"enum": [
"admin",
"editor",
"viewer"
],
"type": "string"
},
"User": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"role": {
"$ref": "#/definitions/Role"
},
"address": {
"$ref": "#/definitions/Address"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"meta": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"active": {
"type": "boolean"
}
},
"required": [
"id",
"name",
"role",
"address",
"tags",
"meta",
"active"
],
"additionalProperties": false
}
}
}definitions 概览
Address、Role、User
关于 TS 接口转 Schema 工具
TS 接口转 Schema 是云海百宝箱提供的一个免费在线工具。粘贴 TypeScript interface / type 声明转为 JSON Schema(draft-07),支持可选属性、数组、元组、字面量联合枚举、交叉类型、Record、索引签名与跨声明 $ref,本地生成 该工具完全在浏览器中运行,无需下载安装任何软件,跨平台支持 Windows、Mac、Linux 及移动设备,数据在本地处理不上传服务器。
与 TS 接口转 Schema 配合常用的同类工具: Cron表达式生成器、正则表达式生成器、API文档生成器、Markdown编辑器、HTML预览器、图标查找器
TS 接口转 Schema 使用方法
- 在输入框中输入或粘贴需要处理的内容
- 选择相应的处理选项或参数
- 点击"处理"或"转换"按钮获取结果
- 点击"复制"按钮可一键复制结果到剪贴板