APIレスポンスからTypeScriptの型を作る
実際のJSONペイロードはあるのに、.tsファイルは空。フィールド名を手で写す代わりに、インターフェースの下書きを推論させます。
このガイドで使う道具
やりたいこと
新しいエンドポイントがネストしたオブジェクト(ユーザー・ロール・タイムスタンプ)を返してくる。消費側のコードを書く前にTypeScriptの型が必要です。ペイロードが大きいと、フィールド名を手で写すのは遅くて間違えやすい作業です。
具体例
{"user": {"name": "Ada", "roles": ["admin"]}} を貼ると、name: string と roles: string[] を持つ User インターフェースと、user フィールドが User 型の Root インターフェースの2つが出ます。ネストしたオブジェクトはそれぞれ名前付きインターフェースになり、配列は string[] のような要素型か、型が混ざるサンプルではユニオンになります。
配列の各アイテムのように同じ構造が2回出てくる場合は1つのインターフェースにまとめるので、出力はコンパクトに保たれます。
コミット前に下書きを確認する
生成された型は出発点であって正解ではありません。よくある修正は3つ:サンプルでnullだった値はnull型のままなので実際の型に広げる、このサンプルに無いキーは出てこないのでoptionalで足す、空配列からのany[]には実際の要素型を入れる、です。
- 識別子として不正なキー("user-id"・"first name")は引用符付きで出ます。TypeScriptとして有効です。
- JSONが不正なら先にJSONフォーマッターで直してから生成してください。