JSON TypeScript変換
JSONを貼り付けるとTypeScriptのインターフェースを生成します。入れ子は名前付きの型に、配列の項目は統合して省略可能な項目を示し、nullはユニオン型にします。
すべてのサンプルでnullのフィールドは、null型になります。実際の型がわかったら置き換えてください。
JSONのレスポンスを貼り付けると、そのままコードに取り込めるTypeScriptのインターフェースを生成します。入れ子のオブジェクトはそれぞれ名前付きのインターフェースになり、オブジェクトの配列は統合されて一部の項目にないフィールドは省略可能として扱われ、ときどきnullになる値は | null のユニオン型になります。変換はブラウザ内で行われるため、非公開のAPIデータがどこかにアップロードされることはありません。
使い方
- 代表的なJSONのサンプルを貼り付けます。配列に複数の項目が入っているサンプルが理想的です。
- 最上位の型の名前を設定します(既定値はRoot)。
- interfaceかtypeエイリアスかを選び、exportを付けるかどうかを選びます。
- 結果をコピーして、変更したい型名があれば書き換えます。
計算式
string → string · number → number · true/false → boolean · null → null · [ … ] → T[] · { … } → interface
すべての値を調べ、同じ位置で見つかった型を統合します。配列内の一部のオブジェクトにしかないキーには ?(省略可能)が付きます。同じ位置に異なる型があると、string | number のようなユニオン型になります。形が同じオブジェクトは1つのインターフェースを共有し、配列項目の型名はキーの単数形から付けます(orders → Order)。重複したキーと、有限の安全な整数の範囲外の数値は拒否し、その他の小数はJavaScriptの精度に従います。
計算例
サンプルのユーザーレコードからは3つの宣言が生成されます。Root には id: number、name: string、tags: string[]、address: Address、orders: Order[]、manager: null があります。Address には street、city、postcode があり、すべて文字列です。Order には id: string、total: number、items: number、coupon?: string があります。クーポンがあるのは2件目の注文だけなので、省略可能になります。
よくある質問
interfaceとtypeのどちらを使うべきですか?
単純なオブジェクトの形ならどちらでも使えます。インターフェースは拡張でき、複数の宣言をまたいでマージもできます。typeエイリアスはユニオンやタプルも表せます。多くのスタイルガイドは、オブジェクトの形にはinterfaceを推奨しています。
フィールドが省略可能になるのはなぜですか?
配列内の少なくとも1つのオブジェクトにそのフィールドがないためです。APIが常に送ってくる場合は、より完全なサンプルデータを使うか、? を手動で削除してください。
フィールドがnull型になるのはなぜですか?
サンプルの値がすべてnullだったため、ほかに推論できる情報がないからです。string | null のように実際の型に置き換えてください。
実行時にデータを検証してくれますか?
いいえ。TypeScriptの型はコンパイル時に消えます。APIのレスポンスを実行時に検証するには、ZodのようなスキーマライブラリやJSON Schemaの検証ツールを使ってください。
出典
最終更新:
この入力内容のページアドレス: https://kakao.mobile/ja/tools/json-to-typescript-tool/
このツールを引用する
kakaoCalc. (2026, November 8). JSON TypeScript変換. https://kakao.mobile/ja/tools/json-to-typescript-tool/
“JSON TypeScript変換.” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/json-to-typescript-tool/.