入出力データはサーバーに送信されず、どこにも保存されません。すべての処理はブラウザ上で完結します。

JSON → TypeScript インタフェース生成

TypeScript interface
 

使い方


JSON データを左側に貼り付けると、対応する TypeScript の `interface` 定義が右側に出力されます。ネストしたオブジェクトはそれぞれ独立した interface として展開され、配列の要素型も推論されます。ルート interface の名前は変更できます。

型推論のルール


JSON の値から TS 型を以下のように推論します:`null` → `null`、文字列 → `string`、数値 → `number`、真偽値 → `boolean`、配列 → 要素型の `T[]`(混在した場合はユニオン)、オブジェクト → 個別の interface。配列の要素オブジェクトは最初の要素から型を推論します。完全な型推論は TypeScript の構造的型システムを使う方が正確なので、本ツールは「最初の足場」を作る用途と割り切っています。

活用シーン


  • REST API のレスポンス JSON から TS の型定義を起こすたたき台に
  • 設定ファイルや YAML から JSON を経由して型を生成
  • GraphQL なしで API レスポンスを型付けしたい場合
  • 既存 JS コードを TypeScript に移植する際、データ型の足場作り
  • スキーマレスな MongoDB ドキュメントのサンプリングから型を起こす

プライバシー


JSON のパースと型推論はすべてブラウザ内で完結します。入力したデータがサーバーに送信されることはなく、機密情報を含む JSON でも外部に漏れる経路はありません。

よくある質問


type エイリアスではなく interface を生成するのはなぜですか?

オブジェクトの形を表現する際は interface が TypeScript の慣用的な選択で、宣言マージや拡張にも対応できます。ネストしたオブジェクトはそれぞれ名前付きの interface になるため、深くインライン展開された 1 つの型ではなく、再利用しやすい階層として読める出力になります。

本番データや実際の値を含む API レスポンスを貼り付けても大丈夫ですか?

はい。パースと型推論はすべてブラウザ内で行われ、アップロードや保存は一切ありません。トークンや個人情報を含むレスポンスでも端末内にとどまります。そもそも生成される型は値ではなく構造だけを表すものです。

オブジェクトの配列からはどのように型が推論されますか?

要素の型は配列の最初の要素から推論されます。後続の要素にフィールドの過不足があってもマージはされないため、サンプルが不揃いな場合は出力を確認してください。

null・混在配列・空オブジェクトはどう扱われますか?

null は `null` 型に、[1, "a"] のような混在配列は (number | string)[] のようなユニオンの要素型になります。あくまでベストエフォートの足場なので、オプショナルなフィールドや正確な絞り込みは後から手で調整してください。

ルートの interface 名は変更できますか?

はい。ルート名フィールドからルート interface の名前を変更できます。生成される型を User や ApiResponse など既存のドメイン名に合わせたいときに便利です。