JSON → TypeScript コンバーター

JSON サンプルから TypeScript の interface / type エイリアスを生成。ネスト型、配列要素のマージ、オプショナル、export に対応しブラウザで動作。

入力内容とファイルはブラウザ内に留まります

JSON 入力

JSON のサンプルを貼り付けると、入力に合わせて TypeScript のインターフェースが生成されます。

エディター内では Tab でインデントします。Esc を押してから Tab でエディターの外に移動します。

TypeScript 出力

TypeScriptインターフェースがここに表示されます...

このページの内容

JSON サンプル (API レスポンス、設定ファイル、テストフィクスチャなど) を貼り付けると、入力に合わせて TypeScript の宣言が得られます。ネストしたオブジェクトはそれぞれ名前付きの interface になるので、出力をそのまま .ts ファイルに入れられます。

詳細な機能

型は値から推論されます。string、number、boolean、null、配列は T[]、型が混在する配列は (number | string | null)[] のようなユニオン、空配列は unknown[] です。ネストしたオブジェクトには、そのパスを PascalCase にした名前の interface が作られます (Order 内の shipping_address → OrderShippingAddress)。配列内のオブジェクトはすべて 1 つの要素型にマージされ、一部の要素にしかないキーはオプショナルに、値の型が異なるキーはユニオンになります。

オプション: ルート名 はトップレベルの型名を設定します (既定は Root)。export キーワード はすべての宣言に export を付けます。オプショナルフィールド (?) (既定でオン) は値が null のキーをオプショナルにします。type エイリアスを使用 は interface X { … } の代わりに type X = { … }; を出力します。ルートが配列の場合は export type Users = UsersItem[]; のようなエイリアスが生成されます。識別子として無効なキーは引用符で囲まれ ("order-id": string;)、重複する型名には番号の接尾辞が付きます。

出力は編集のたびに (少し間をおいて) 再生成されるほか、変換 または Ctrl+Enter でも再生成されます。無効な JSON ではパーサーのエラーが表示されます。結果は読み取り専用のエディターに表示され、コピー するか .ts をダウンロード で types.ts として保存できます。すべてローカルで動作し、サンプルがアップロードや保存されることはありません。

実用例

API オブジェクト: {"id":7,"user_name":"ann","tags":["a"],"manager":null} をルート名 User、export キーワードありで変換すると export interface User { id: number; user_name: string; tags: string[]; manager?: null; } になります。

異なるオブジェクトの配列: [{"id":1,"email":"[email protected]"},{"id":2,"phone":"555"}] をルート名 Users で変換すると export interface UsersItem { id: number; email?: string; phone?: string; } と export type Users = UsersItem[]; になります。

type エイリアスと引用符付きのキー: {"order-id":"A1","items":[{"sku":"x","qty":2}],"shipping_address":{"city":"Omsk"}} をルート名 Order、type エイリアスを使用ありで変換すると type OrderItemsItem = { sku: string; qty: number; };、type OrderShippingAddress = { city: string; };、type Order = { "order-id": string; items: OrderItemsItem[]; shipping_address: OrderShippingAddress; }; になります。

このツールの使い方

  1. JSON を貼り付ける

    JSON サンプルを JSON 入力 エディターに入れます。TypeScript 出力 は自動で更新されます。

  2. オプションを調整する

    ルート名 を設定し、必要に応じて export キーワード、オプショナルフィールド (?)、type エイリアスを使用 を切り替えます。

  3. 型を取り出す

    コピー をクリックして宣言をコピーするか、.ts をダウンロード で types.ts として保存します。

ヒントとベストプラクティス

  • サンプルからわかるのは含まれている値だけです。サンプルで null のフィールドは null 型になるので、実際の型 (たとえば string | null) に手で置き換えてください。
  • 要素型を正しく得るには、オプショナルなフィールドが異なる要素を配列に複数入れてください。
  • 数値はすべて number になり、ISO 形式の日付は string のままです。
  • null 値が常に明示的に送られ、manager: null を必須キーにしたい場合は、オプショナルフィールド (?) をオフにしてください。
  • プロパティ名は元の綴りのままで、PascalCase に変換されるのは型名だけです。