🧩

JSON から TypeScript インターフェース

JSON を貼り付けるだけで TypeScript interface を自動推論。ネストしたオブジェクトや配列にも対応

説明:型はこのJSONから推論されたものであり、JSON Schemaではありません。配列内の要素構造が一致しない場合はユニオン型が生成され、フィールド名が有効な識別子でない場合は引用符が付きます。

使い方

JSON から TypeScript インターフェースの使い方\n\n## 機能概要\nAPI が返す JSON を手作業で TypeScript の型に書き起こすのは手間がかかります。このツールは JSON の構造をそのまま読み取り、ネストした interface を再帰的に推論します。\n\n## 使い方\n1. JSON を入力欄に貼り付けます。「サンプルを入力」を押すと複雑な例を確認できます\n2. ルートインターフェース名(デフォルトは Root)を入力し、`interface` か `type` エイリアスを選びます\n3. フィールドが欠落する可能性がある場合は「フィールドをオプションにする」にチェックを入れると、各フィールドに `?` が付きます\n4. 「TypeScript を生成」を押すと、参照順に出力され、サブタイプが先、ルート型が後に並びます\n5. 「結果をコピー」でコピーできます\n\n## 注意点\n- 型はこの 1 件の JSON から推論されます。フィールドが `null` の場合は `null` としか判定できず、フィールドの欠落も判別できません。より正確にするには複数のサンプルを使うか、手作業で補ってください\n- 配列内の要素構造が一致しない場合はユニオン型を生成します。例:`(A | B)[]`\n- 空の配列は `unknown[]` としか推論できないため、型はご自身で補う必要があります\n- フィールド名が有効な識別子でない場合は引用符で囲まれ、TypeScript の構文に適合します

よくある質問

配列内のオブジェクトの型が一致しない場合はどうなりますか?

構造ごとに個別のインターフェースを生成し、配列要素の型をユニオン型として出力します。例:`(User | Admin)[]`。生成後に実際の用途に合わせて絞り込めます。

null フィールドの型が null になるのはなぜですか?

この 1 件のデータだけでは、将来文字列や数値になるかどうかを判断できないためです。実際のデータに現れる型をすべて補うか、手動で `string | null` に変更することをおすすめします。

Go や Java の型も生成できますか?

現在は TypeScript のみ生成します。構造を確認したい場合は、このツールで推論したネストしたインターフェース名を他の言語の構造体に書き換えるのも難しくありません。