APIレスポンスを数秒で型付け
大きなJSONに対応するインターフェースを手書きする代わりに、ここに貼り付けましょう。ツールが型を再帰的に推論します:ネストしたオブジェクトを別インターフェースに、配列を型付け、オプショナルフィールドを「?」でマーク。
-
JSONを貼り付け
APIレスポンス、設定ファイル、任意のオブジェクト。
-
ルートに命名
既定は「Root」、または好きな名前。
-
インターフェースをコピー
.tsファイルにそのまま貼れます。
推論の例
| JSONの値 | 推論された型 |
|---|---|
| "name": "Ada" | name: string |
| "age": 36 | age: number |
| "roles": ["admin"] | roles: string[] |
| "profile": { … } | profile: Profile |
| (配列の一部のオブジェクトにないキー) | field?: type |
1つの例からの推論です:nullは絞り込み(多くは string | null のunion)、後で型を確認しましょう。すべてローカルで処理され、JSONはブラウザの外に出ません。
よくある質問
型はどう推論される?
ツールは各値を調べます:数値はnumber、文字列はstring、真偽値はboolean。オブジェクトはキー名のインターフェースに、配列は要素に応じて型付けされます(string[]、MyType[]…)。
オプショナルフィールドはどう検出される?
配列が複数のオブジェクトを含む場合、ツールはキーをマージします。一部のオブジェクトにあって全部にはないキーは「?」でオプショナルにマークされます。これは不均一なAPIデータでまさに期待される挙動です。
null値や空配列はどうなる?
null値はnull型になります(手動で string | null のような union に絞り込むことが多い)。空配列はunknown[]になります。1つの例からは要素の型を決められないためです。
結果はそのままコードに貼れる?
はい:ルートインターフェースは指定した名前(既定「Root」)、サブインターフェースはその上に宣言され、構文は有効なTypeScriptです。分かりやすくするため、ドメインに合わせてインターフェース名を変更してください。