使い方
- 一般的なJSONの値をJSONのサンプルに貼り付けます。入力すると型が表示されます。
- 一番外側のオブジェクトの名前を最上位のインターフェース名に入力します(例:Product)。
- 型が同じファイルにとどまる場合は、各宣言の前にexportを付けるのチェックを外します。
- TypeScriptのインターフェースのコードをコピーするか、types.tsとしてダウンロードします。
型の求め方
JSONのオブジェクトは、それぞれ1つのインターフェースになります。名前は、それを持つキーからPascalCaseで付けられます。キーfirst-nameはFirstNameになります。配列の項目は、配列のキーの単数形を使い、itemsはItemになります。名前がすでに使われている場合は、親の名前を前に付けます。
文字列、数値、真偽値は、string、number、booleanになります。nullは、number | nullのように共用体の中でnullと書かれます。値の配列は、型の後に[]が付きます。空の配列は、サンプルが中身を示さないためunknown[]になります。
キー "first-name" -> プロパティ "first-name": string; items -> Item[]
1つの配列にある複数のサンプル
オブジェクトのリストは、1つの形として読まれます。すべての項目にあるキーは必須です。一部の項目にないキーは、疑問符を付けてオプションとして書かれます。項目によって型が違うキーは共用体になり、string、number、boolean、インターフェース、配列、nullの順に並びます。
サンプルは、そこに含まれる値だけを示します。実際のAPIが時々省くキーは、1つの例には現れないことがあるため、オプションとして示したい場合は、そのキーを持つ2つ目の項目を加えてください。
計算例:初期値のサンプル
初期値のサンプルは、5つのキーを持つ1つのオブジェクトです。ownerのキーはオブジェクトを持つため、コードにはOwnerのインターフェースがあります。itemsのキーは2つのオブジェクトの配列なので、コードにはItemのインターフェースがあります。skuとpriceのキーは両方の項目にあるため必須です。discountのキーは、1つの項目ではnull、もう1つでは数値なので、number | nullです。noteのキーは1つの項目にだけ現れるため、オプションです。
結果は3つの宣言になります:Root、Owner、Item。件数は3と表示されます。
よくある質問
フィールドに疑問符が付くのはなぜですか?
そのフィールドは、サンプルのオブジェクトのうち少なくとも1つに欠けています。実際のデータでは省かれることがあるため、TypeScriptはそれをオプションとして扱い、それを読むコードは先に確認しなければなりません。
string | numberのような共用体がフィールドに表示されるのはなぜですか?
項目によって、そのキーに違う型の値が入っています。型は、サンプルで見られたすべての型を並べるため、値を使う前に、どれであるかをコードで確認しなければなりません。
このツールは、実際のAPIのデータを確かめますか?
いいえ。貼り付けたサンプルの型を書き出すだけです。項目が1つだけのサンプルでは、後になって現れるフィールドは示せないため、可能なら複数の項目を持つ一般的な応答を使ってください。
一部のプロパティ名が引用符で囲まれるのはなぜですか?
first-nameや2faのように、単純な識別子ではない名前は、TypeScriptでは引用符で囲まなければなりません。正しい識別子である名前は、引用符なしで書かれます。
出力はJavaScriptでも使えますか?
インターフェースはTypeScriptだけのものです。コンパイル時に取り除かれるため、JavaScriptのプロジェクトでは、JSONを別の方法で確かめるか、TypeScriptのビルド工程が必要です。
出典
- TypeScriptハンドブック:オブジェクト型、インターフェース、オプションのプロパティ(英語)
- RFC 8259:JavaScript Object Notation(JSON)データ交換形式(英語)
数値と文章の最終確認日:2026年11月10日火曜日。