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 使用方法

  1. 在输入框中输入或粘贴需要处理的内容
  2. 选择相应的处理选项或参数
  3. 点击"处理"或"转换"按钮获取结果
  4. 点击"复制"按钮可一键复制结果到剪贴板

相关工具推荐