跳到主要内容

OpenAPI架构转TypeScript类型转换器

将OpenAPI 3.x(或Swagger 2.0)文档的组件架构转换为TypeScript接口和类型别名声明。解析$ref、将allOf转换为交集、oneOf/anyOf转换为联合、处理discriminator和可空字段,并生成可下载的.ts文件。

输入

 

输出

TypeScript类型
 
这对您有帮助吗?

使用指南

粘贴OpenAPI 3.x(或Swagger 2.0)文档,为components.schemas下的每个架构获取简单的TypeScript interface/type声明 — 无服务器、无代码生成CLI、无npm install

手动将API架构复制到TypeScript既繁琐又容易出现细微错误:每个$ref都必须追溯到其目标,allOf/oneOf/anyOf需要正确的union/intersection形状,错过的requirednullable字段会默默创建一个关于API实际返回内容的虚假类型。此工具从规范本身确定性地解决所有这些问题,因此结果每次都与文档匹配。

如何使用

  1. 将OpenAPI 3.x或Swagger 2.0文档(YAML或JSON都可以)粘贴到输入框中,或单击尝试示例来加载示例Pet Store规范。
  2. 如果希望每个interface、type和属性都使用其架构的description进行注释,请启用添加来自架构描述的JSDoc注释
  3. 复制或下载生成的.ts文件。

编辑规范时,输出会自动更新。

转换的内容

  • $ref解析components/schemas$defs或(对于Swagger 2.0)definitions中的每个引用都按名称解析,包括不同bucket中架构之间的引用。与转换为运行时验证器不同,普通TypeScript类型不需要任何声明顺序或循环处理 — interface和type alias可以以任何顺序相互引用(包括自己),因此自引用的"tree node"架构就能工作。
  • allOf — 变成交集类型(A & B),每个allOf条目一个成员。
  • oneOf / anyOf — 变成联合类型(A | B)。
  • discriminator — 不需要特殊语法:一旦每个union成员都是具有其自己的literal型属性的对象类型(kind: "cat"kind: "dog"),TypeScript已经在该属性上缩小了union。生成的类型是在切换共享字段的瞬间判别的union。
  • nullable: true(OpenAPI 3.0)和**type: [T, "null"]**(OpenAPI 3.1 / JSON Schema)— 两者都变成T | null
  • enum — string enum变成string literal的union;const变成单个literal类型。
  • required / optional properties — 必需的键保持必需;其他的都得到?
  • additionalPropertiesfalse添加[key: string]: never;索引签名;架构值变成& Record<string, T>
  • 隐式形状 — 省略type但声明propertiesitems的架构(在手写规范中常见)仍然被解读为对象或数组,而不是回到unknown

对象架构作为export interface发出;其他一切(union、intersection、enum、数组alias、仅$ref架构)作为export type发出。

参数、请求体和路径呢?

此工具仅读取components.schemas — 可重用的数据形状。它不为paths、操作参数或响应信封生成类型;对于这些,请针对规范使用完整代码生成器,或单独粘贴所需的每个架构。

我的规范使用Swagger 2.0(swagger: "2.0")— 这有效吗?

是的,definitions的读取方式与components.schemas相同。如果您更喜欢先将整个文档转换为OpenAPI 3.x — 新的$ref路径、requestBodyservers等等 — 请参阅OpenAPI v2 to v3 Converter

我的规范首先被验证吗?

否 — 此工具假设文档已经格式正确,并纯粹专注于类型生成。如果您想要结构验证(缺少operationId、无法解析的$ref、未声明的路径参数)在转换前或代替转换,请参阅OpenAPI / Swagger Validator

我需要Zod架构,而不是普通TypeScript类型

请参阅JSON Schema to Zod Schema Converter — 粘贴一个架构(不是完整的OpenAPI文档)以获得运行时验证Zod架构及其推断的TypeScript类型。

我的规范被发送到任何地方吗?

否。解析和类型生成完全在您的浏览器中运行 — 在这里运行的相同代码也支持公共API和MCP工具,没有任何内容发出网络请求。

openapiswaggerapi schemarest apicodegentype generationinterfacecomponents schemasapi typestypescript

Use it from code

From 3 credits per call

REST API

curl -X POST https://api.iotools.cloud/v1/tool/openapi-to-typescript-converter \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "openapiText": "openapi: 3.0.3\ninfo:\n  title: Pet Store\n  versio…",
    "includeComments": "false"
  }'

Swap in your own key from your account. The tool's fields are the body — no wrapper.

Ask an AI agent

Use the IOTools `openapi-to-typescript-converter` tool (OpenAPI Schema to TypeScript Types Converter) on this input:

YOUR_INPUT_HERE

Paste this at any agent connected to the IOTools MCP server, then add your input.

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。