JA
マイツール

JSON TypeScript変換

JSONを貼り付けるとTypeScriptのインターフェースを生成します。入れ子は名前付きの型に、配列の項目は統合して省略可能な項目を示し、nullはユニオン型にします。

TypeScript
宣言数
3

すべてのサンプルでnullのフィールドは、null型になります。実際の型がわかったら置き換えてください。

マイツール →
広告

JSONのレスポンスを貼り付けると、そのままコードに取り込めるTypeScriptのインターフェースを生成します。入れ子のオブジェクトはそれぞれ名前付きのインターフェースになり、オブジェクトの配列は統合されて一部の項目にないフィールドは省略可能として扱われ、ときどきnullになる値は | null のユニオン型になります。変換はブラウザ内で行われるため、非公開のAPIデータがどこかにアップロードされることはありません。

使い方

  1. 代表的なJSONのサンプルを貼り付けます。配列に複数の項目が入っているサンプルが理想的です。
  2. 最上位の型の名前を設定します(既定値はRoot)。
  3. interfaceかtypeエイリアスかを選び、exportを付けるかどうかを選びます。
  4. 結果をコピーして、変更したい型名があれば書き換えます。

計算式

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の検証ツールを使ってください。

出典

最終更新:

このツールを引用する
APA

kakaoCalc. (2026, November 8). JSON TypeScript変換. https://kakao.mobile/ja/tools/json-to-typescript-tool/

MLA

“JSON TypeScript変換.” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/json-to-typescript-tool/.

広告