このツールについて
JSONサンプルからTypeScriptの型宣言を作り、フィールド、配列、入れ子構造を確認できます。配列の全要素を反映し、一部のオブジェクトにないフィールドは省略可能として示します。出力されるのは型定義で、元のデータ値は含みません。
使い方
- 有効なJSONを入力します。オブジェクトやオブジェクト配列がおすすめです。
- ルート型名を設定し、interfaceまたはtype aliasを選びます。
- 「変換」を押し、省略可能なフィールドの?、nullのユニオン、入れ子の型を確認します。
- コードをコピーするか、整えられたルート型名の.tsファイルをダウンロードします。
使用例
- [{"id":1,"name":"Tom"},{"id":2,"email":"a@example.com"}]:idは必須、nameとemailは省略可能です。
- [1,"a",true]:要素の型はnumber、string、booleanのユニオンになります。
- {"date":"2026-01-01","matrix":[[1,2],[3,4]]}:dateはstring、matrixはnumber[][]です。
型の対応規則
文字列はstring、整数と小数はnumber、真偽値はbooleanになります。省略と明示的なnullは別に記録し、省略には?、既知の型にnullも現れる場合は| nullを付けます。nullのみのサンプルからstringは推論しません。空配列はunknown[]、オブジェクトは安定した名前の入れ子の型になります。不正なプロパティ名は引用符で囲み、ルート名と型名は有効な識別子に整えて衝突を解消します。日付文字列はstringのままです。サンプルだけでは今後の全データが型に適合するとは保証できません。入力・出力はそれぞれ1 MiB、入れ子64階層、100000ノード、統合フィールド5000個、型256個までです。安全な整数範囲外、非有限値、アンダーフローで0になる数値はエラーにし、その他の小数はブラウザーの浮動小数点精度に基づきます。
主な用途
- APIレスポンスのサンプルから型の下書きを作成する。
- オブジェクト配列で省略される可能性のあるフィールドを確認する。
- 入れ子のJSONから読みやすい型宣言を作成する。
プライバシー
JSONと生成したコードはブラウザー内だけで処理し、アップロードや自動保存は行いません。入力に含まれるコードも実行しません。
結果を残す場合は、ページを離れる前にコピーまたはダウンロードしてください。
よくある質問
日付文字列がDateにならないのはなぜですか?
JSONにDate型はありません。日付のような文字列も初期設定ではstringのままで、実行時の変換はアプリケーション側で行います。
省略可能なフィールドはどう判断しますか?
あるフィールドが一部のサンプルにだけ存在する場合、省略可能として示します。内容をより正確に反映するには、代表的なサンプルを複数用意してください。
明示的なnullとフィールドの省略の違いは?
nullはフィールドが存在し、その値が空であることを示します。省略はフィールド自体がありません。それぞれユニオン型と省略可能の印で表します。
配列に異なる型の要素がある場合は?
互換性のあるオブジェクト構造を統合し、整数と小数はnumberにまとめます。異なるプリミティブ型はユニオン型として残します。
出力は完全なデータ検証器ですか?
いいえ。TypeScriptの型は静的な記述であり、実行時にJSONを自動検証したり、サンプルにないケースを推論したりはしません。