JSON → TypeScript 🔒 ブラウザ内で完結 — 何もアップロードされません。

JSON サンプルから TypeScript のインターフェースを生成。

 

このツールについて

API レスポンスに合わせて TypeScript のインターフェースを手で書くのは単純作業で、微妙に間違えやすいものです。サンプルの JSON をここに貼り付ければ、対応するインターフェースがすぐに得られます。ネストしたオブジェクトは名前付きの独立インターフェースに抽出され、オブジェクトの配列はマージされて一部のエントリに無いキーは任意になり、複数の型を持つ値はユニオンになります。

軽量な推論器を使い、すべてブラウザ内で動作します——JSON がアップロードされることはありません。貼り付けて、必要ならルート名を変え、そのまま使える型をプロジェクトにコピーしてください。

よくある質問

入力したJSONデータはどこかにアップロードされますか?

いいえ。パースと型推論はすべてブラウザ内のJavaScriptで実行され、JSONが端末の外に出ることはありません。

配列内のオブジェクトが異なるフィールドを持つ場合、どう処理されますか?

配列内のすべてのオブジェクトのキーを1つのインターフェースにマージします。すべてのオブジェクトに存在しないキーは、削除されるのではなく `?` を付けてオプションとしてマークされます。

数値と文字列が混在する配列の場合はどうなりますか?

`(string | number)[]` のようなユニオン型の配列を生成します。これにより、サンプルに実際に含まれていたすべての値の形が正しく反映されます。

interfaceの代わりにtypeエイリアスを生成できますか?

はい、「as type」を有効にすると、生成される `interface Name {}` がすべて `type Name = {}` に変わります。コードベースがtypeエイリアスを好む場合に便利です。

無効なJSONを貼り付けるとどうなりますか?

「invalid JSON」という一般的なメッセージではなく、問題のある正確な行と列を示すエラーメッセージが表示され、そこへ直接ジャンプすることもできます。

フラットなJSONだけでなく、ネストしたオブジェクトや配列も処理できますか?

はい。ネストしたオブジェクトは親キーから自動的に名付けられた独自のインターフェースになります(例えば `profile: {...}` は `Profile` インターフェースを生成)。配列名は単数形になります(`roles` → `Role[]`)。オブジェクトの配列は全要素で共有される1つのインターフェースを生成し、すべての要素にはないフィールドは `?` が付きます——配列の項目ごとに別々のインターフェースは作られません。