Skip to content

使用 ApiTypingMeta 自定义类型

ApiTypingMeta

ApiTypingMeta 现在支持泛型,提供了更强大的类型自定义能力。

基础用法

typescript
import type { ApiTypingMeta } from "api-typing"

// 这里为openapi中定义的所有模型类型
export type Meta = ApiTypingMeta["components"]["schemas"]
// 使用模型类型定义数据
const pet: Meta["Pet"] = { id: 1, name: "", tag: "" }

泛型支持

从 v1.17.0 开始,ApiTypingMeta 支持泛型参数,允许您定义自定义的 API 类型:

typescript
import { createHTTPClient, type ApiTyping } from "api-typing"

// 定义自定义 API 类型
interface CustomApiTypes extends ApiTyping {
  paths: {
    "/custom/{id}": {
      get: {
        parameters: { path: { id: string } }
        responses: {
          200: {
            content: {
              "application/json": { id: string; name: string }
            }
          }
        }
      }
    }
  }
  components: {
    schemas: {
      CustomModel: { id: string; name: string }
    }
  }
  operations: {}
  external: {}
}

// 使用自定义类型创建客户端
const customClient = createHTTPClient<CustomApiTypes>()

// 提取自定义类型
export type CustomMeta = CustomApiTypes["components"]["schemas"]
const customModel: CustomMeta["CustomModel"] = { id: "1", name: "example" }

了解更多关于泛型支持的详细信息,请参阅 泛型支持指南