直接回答
JSONからTypeScript変換は観測した値からコンパイル時の宣言を推論します。 エディタ補完やビルド検査には有効ですが、実行時には消えるため入力データを検証しません。
型宣言を生成し、境界ケースを確認して、必要ならランタイム検証を追加してください。
入力 JSON
出力 TypeScript
1export interface Root {2user: User;3}45export interface Address {6city: string;7zip: string;8}910export interface Profile {11age: number;12address: Address;13}1415export interface User {16id: number;17name: string;18email: string;19isActive: boolean;20roles: string[];21profile: Profile;22lastLogin: string;23}24
使い方
- JSONを貼り付け/アップロードし、対応する公開例も利用できます。
- ルート名、interface/type、optional方針、配列構文、ネスト抽出、readonly/export、セミコロンを設定します。
- 未観測のunion/null/optionalケースを確認し、
.tsをコピーまたは保存します。
主な機能と設定
- interfaceまたはtype aliasを生成。
- optionalフィールドと配列構文を制御。
- ネスト宣言の分離、readonly、export。
anyよりunknownを優先し、観測文字列からliteral unionを生成可能。
対応する入力と出力
入力: JSONテキストまたはファイル, 対応する公開URL. 出力: .ts.
利用例
- APIレスポンス例からフロントエンドモデルを作る。
- 複雑な連携のネスト構造を文書化する。
- Zodと組み合わせて静的型とランタイム検証を両立。
どのワークフローを選ぶべきか
JSONからTypeScript変換ツール:interfaceまたはtype aliasを生成。 JSONからZod Schema生成:ネストしたZod object、array、scalar schemaを生成。
プライバシーとデータ経路
現在の実装では貼り付け/アップロード内容はブラウザで処理されますが、「Extract from URL」はサーバー側proxyで取得します。
制限とトラブル対処
- 1つのpayloadではすべてのoptional、nullable、union変種を把握できません。
- 信頼できない入力を扱う場合はZodなどのランタイムvalidatorを追加してください。
- すべての端末に共通する容量保証はなく、大きな入力の処理性能はブラウザメモリと端末性能に左右されます。
FAQ
TypeScriptの型は実行時にJSONを検証しますか?
いいえ。 TypeScript型はコンパイル後に消えます。 不正なpayloadを拒否するにはZodなどのランタイムvalidatorが必要です。
データはサーバーへアップロードされますか?
現在の実装では貼り付け/アップロード内容はブラウザで処理されますが、「Extract from URL」はサーバー側proxyで取得します。
ファイルやデータの上限はありますか?
すべての端末に共通する容量保証はなく、大きな入力の処理性能はブラウザメモリと端末性能に左右されます。
スマートフォンでも使えますか?
Webツールのため最新のモバイルブラウザで動く可能性はありますが、ファイル選択、メモリ、端末ごとの互換性は全環境で確認されていません。 大きい・複雑な入力にはデスクトップブラウザを推奨します。
どのワークフローを選ぶべきか
JSONからTypeScript変換ツール:interfaceまたはtype aliasを生成。 JSONからZod Schema生成:ネストしたZod object、array、scalar schemaを生成。
関連ツール
型宣言を生成し、境界ケースを確認して、必要ならランタイム検証を追加してください。