OSS探訪GitHubでログイン

OpenAPI 3.0/3.1の定義から実行時コードを増やさずTypeScript型を生成する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
8,391
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/09/25
ページ内ナビ

概要

openapi-typescriptは、OpenAPI 3.0/3.1のYAML・JSON定義をTypeScript型へ変換する生成ツールです。ローカルfileやremote schemaからpathsやcomponentsを生成し、frontendやSDKでrequest・response型をAPI契約から共有できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

YAML・JSONのOpenAPI定義からruntime-freeな型を生成する

OpenAPI 3.0/3.1のschemaをローカルまたはremoteから読み込み、実行時libraryを追加しないTypeScript型へ変換します。Javaやnode-gyp、起動中のOpenAPI serverを必要とせず、CLIから.d.tsを生成できます。

出典:[1]

pathsとcomponentsからrequest・response型を参照する

生成されたpathsやcomponentsをimportし、endpoint parameter、request body、response schema、共有componentの型をAPI定義から直接参照できます。mock dataやclient SDKの型整合性確認にも使えます。

出典:[1]

7.13.0ではreadOnly・writeOnlyを型上で区別できる

7.13.0では--read-write-markers flagが追加され、OpenAPIのreadOnly propertyを$Read<T>、writeOnly propertyを$Write<T>で表現できます。requestとresponseで利用可能なpropertyを分けたいAPIに使えます。

出典:[4][3]

向いている用途

API契約からfrontendの型を継続生成したいprojectに向く

backendがOpenAPIを正本として管理し、frontend、mock、test、SDKで同じschema由来の型を利用したいprojectに適します。手書きinterfaceの更新漏れを減らし、API変更をTypeScript errorとして検出しやすくできます。

出典:[1]

導入前の確認

7.13.0はTypeScript 5.xをpeer dependencyとして要求する

package metadataはTypeScript ^5.xをpeer dependencyとして宣言しています。READMEはNode.js 20.x以上を推奨し、moduleとmoduleResolutionの設定も案内しています。既存toolchainとの整合を確認してください。

出典:[2][1]

生成型だけではruntimeの入力値を検証しない

生成結果はTypeScript型なので、network responseやuser inputを実行時に検証する処理は提供しません。OpenAPI定義が更新された場合も自動で既存生成fileが書き換わるわけではないため、再生成と差分確認をbuildやCIへ組み込む必要があります。

出典:[1]

参考にした公式資料

  1. [1]openapi-typescript 7.13.0 README(2026-10-05)
  2. [2]openapi-typescript 7.13.0 package metadata(2026-10-05)
  3. [3]openapi-typescript 7.13.0 changelog(2026-10-05)
  4. [4]openapi-typescript 7.13.0 release(2026-10-05)
  5. [5]openapi-typescript MIT license(2026-10-05)
編集部からの補足

生成物は実行時コードを持たないTypeScript型です。APIレスポンス自体を実行時に検証する仕組みではないため、外部入力の安全性が必要な境界ではruntime schema validatorを別途組み合わせてください。OpenAPI定義更新時の再生成もCIへ組み込むと差分を追いやすくなります。

3ステップで試す

  1. 1

    openapi-typescript 7.13.0とTypeScriptを導入する

    公式READMEのsetupに沿い、review対象versionとTypeScript 5系を一時projectへ固定して導入します。

    demo=$(mktemp -d "${TMPDIR:-/tmp}/openapi-typescript.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact --save-dev openapi-typescript@7.13.0 typescript@5.9.2
  2. 2

    最小のOpenAPI schemaを作る

    READMEが対応するとしているOpenAPI 3.1のYAMLをlocal inputとして用意します。

    printf "%s\n" "openapi: 3.1.0" "info:" " title: Demo API" " version: 1.0.0" "paths:" " /users/{id}:" " get:" " parameters:" " - in: path" " name: id" " required: true" " schema:" " type: string" " responses:" " '200':" " description: User" " content:" " application/json:" " schema:" " $ref: '#/components/schemas/User'" "components:" " schemas:" " User:" " type: object" " required: [id, name]" " properties:" " id: {type: string}" " name: {type: string}" > openapi.yaml
  3. 3

    schemaからTypeScript型を生成する

    公式CLIで型定義を生成し、componentsに定義したUserが出力へ含まれることを確認します。

    npx openapi-typescript ./openapi.yaml -o ./schema.d.ts && grep -q 'User' ./schema.d.ts
公式READMEで確認

成長

成長の推移 · 直近30日

8,391 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
9
Open PR
74

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • openapi3
  • openapi3-1
  • openapi
  • swagger
  • typescript
Stars
8,391
Forks
668
Watchers
25
Open Issues
210
Contributors
240
所有者種別
Organization
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/09/25

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?