ページ内ナビ
概要
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]
向いている用途
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との整合を確認してください。
生成型だけではruntimeの入力値を検証しない
生成結果はTypeScript型なので、network responseやuser inputを実行時に検証する処理は提供しません。OpenAPI定義が更新された場合も自動で既存生成fileが書き換わるわけではないため、再生成と差分確認をbuildやCIへ組み込む必要があります。
出典:[1]
参考にした公式資料
- [1]openapi-typescript 7.13.0 README(2026-10-05)
- [2]openapi-typescript 7.13.0 package metadata(2026-10-05)
- [3]openapi-typescript 7.13.0 changelog(2026-10-05)
- [4]openapi-typescript 7.13.0 release(2026-10-05)
- [5]openapi-typescript MIT license(2026-10-05)
編集部からの補足
生成物は実行時コードを持たないTypeScript型です。APIレスポンス自体を実行時に検証する仕組みではないため、外部入力の安全性が必要な境界ではruntime schema validatorを別途組み合わせてください。OpenAPI定義更新時の再生成もCIへ組み込むと差分を追いやすくなります。
3ステップで試す
- 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
最小の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
schemaからTypeScript型を生成する
公式CLIで型定義を生成し、componentsに定義したUserが出力へ含まれることを確認します。
npx openapi-typescript ./openapi.yaml -o ./schema.d.ts && grep -q 'User' ./schema.d.ts
成長
成長の推移 · 直近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で投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Valibot9,027 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
小さな関数を組み合わせ、TypeScript型推論と実行時のスキーマ検証を両立する
TypeScript - Superstruct7,127 Stars
共通タグ 4件 · 共通カテゴリ 2件 · 同じ言語
小さなstructを組み合わせ、JavaScriptやTypeScriptの入力値を実行時に検証する
TypeScript - io-ts6,814 Stars
共通タグ 4件 · 共通カテゴリ 2件 · 同じ言語
codecで未知の値をdecode・encodeし、同じ定義からTypeScript型を推論する
TypeScript - Typia5,931 Stars
共通タグ 4件 · 共通カテゴリ 2件 · 同じ言語
TypeScript型をcompile時に専用validatorへ変換し、runtime validationやserializerを生成する
TypeScript - Runtypes2,699 Stars
共通タグ 4件 · 共通カテゴリ 2件 · 同じ言語
未知の値をcomposableなruntime validatorで検証し、同じ定義からTypeScript型を推論する
TypeScript - Ky17,104 Stars
共通タグ 4件 · 共通カテゴリ 1件 · 同じ言語
Fetch APIを薄く拡張し、retry・timeout・hook・JSON処理を短いAPIで扱う
TypeScript
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。