AZ Tools

JSON → TypeScript インターフェイス

開発

JSON サンプル(API レスポンス、設定、フィクスチャ)を貼り付けると、すぐ使える TypeScript インターフェイスが得られます。ネストしたオブジェクトは親キー名(PascalCase)の別インターフェイスに、配列は要素型を推論、プリミティブはそのまま。マージモードは配列の全要素を巡回してユニオン型を作り、最初の要素モードは 0 番目だけ見て高速に推論します。

TypeScript
export interface Post {
  id: number;
  title: string;
  tags: string[];
}

export interface Address {
  city: string;
  zip: string;
}

export interface Root {
  id: number;
  name: string;
  active: boolean;
  joinedAt: string;
  roles: string[];
  address: Address;
  posts: Post[];
}

使い方

  1. JSON サンプルを貼り付け。
  2. ルート型名を設定し、interface / type を選択。
  3. 配列の扱いを選択 — マージ(安全)または最初の要素のみ(高速)。
  4. 生成された TypeScript をコピー。

よくある質問

users 配列なのに User インターフェイスが出るのは?
複数形に見えるキー(users, posts, tags など)は単数化してネスト型名にします。'posts': [...] は Post インターフェイスを生成し Post[] として使われます。
マージと最初の要素の違いは?
マージは配列の全要素を巡回してフィールド型をユニオンにまとめ、一部要素にしかないフィールドは 'field?' になります。最初の要素は 0 番目だけ見るので高速ですがユニオン・オプショナルを見逃すことがあります。
日付は Date として推論されますか?
いいえ — コンパイル時には日付文字列と普通の文字列を区別できないので 'string' のままにします。strict モードでも安全。
null は?
null は独立した型になります。マージモードである要素に null があれば 'field: string | null' のように生成されます。

関連ツール