🔷 JSON to TypeScript -- 即座にインターフェースを生成、無料・オフライン
JSONオブジェクトや配列を貼り付けると、TypeScriptのinterface(またはtype alias)定義を即座に生成します。完全無料・ログイン不要・アップロード不要で、100%ブラウザ内で動作。ネストされたオブジェクトはネストされたinterfaceに、オブジェクト配列は任意フィールドを含む単一の型にマージされ、混合型の配列は自動的にunion型として出力されます。
概要
このJSON-to-TypeScriptコンバーターは、純粋なクライアントサイドの型推論ウォーカーを使用します。外部ライブラリやサーバー呼び出しは一切ありません。JSONのすべてのノードを再帰的に訪問し、プリミティブをstring/number/boolean/nullにマップ、ネストされたオブジェクトは名前付きの子interfaceを生成、オブジェクト配列はすべての要素の形状をマージして一部の要素にないキーをオプション(key?: Type)にし、混合型の配列は(string | number)[]のようなunion型を生成します。interfaceとtype aliasを選択でき、ルートinterfaceの名前も指定可能。すべての処理はブラウザ内で完結し、JSONデータはどこにも送信されません。
使い方
- JSONを入力欄に貼り付けてください -- オブジェクト、配列、ネスト構造すべて対応しています。
- ルートinterfaceの名前(デフォルト: RootObject)を設定し、interfaceかtype aliasを選んでください。
- 「TypeScriptに変換」ボタンをクリック(またはCtrl+Enterを押す)して、すぐに定義を生成します。
- TypeScriptの出力を確認してください -- ネストされたinterfaceが先に、ルートinterfaceが最後に表示されます。
- 「コピー」をクリックして結果をクリップボードにコピーし、TypeScriptプロジェクトに直接貼り付けてください。
よくある質問
- このツールはJSONをサーバーにアップロードしますか?
- いいえ。すべての処理はJavaScriptを使ってブラウザ内で完結します。JSONがデバイスの外に出ることはありません。
- 形状が異なるオブジェクトの配列はどう処理されますか?
- すべての要素の形状が1つのinterfaceにマージされます。すべての要素に存在するキーは必須、一部の要素に欠けているキーは?でオプションとしてマークされます。
- interfaceとtypeの出力モードの違いは何ですか?
- interfaceはTypeScriptのinterface宣言(拡張可能、オブジェクト形状に推奨)を使用します。typeはtype alias(より柔軟で、ルートレベルでプリミティブやunionをサポート)を使用します。オブジェクト形状については両方とも同等の結果を生成します。
- 深くネストされたJSONも処理できますか?
- はい。型ウォーカーは完全に再帰的です。ネストされた各オブジェクトは固有の名前のinterfaceを生成し、interfaceは依存関係順(最深部から先)に出力されるため、TypeScriptは前方参照エラーなしにコンパイルできます。
- JSON配列に文字列や数値など混合型が含まれている場合はどうなりますか?
- 混合型の配列はunion型を生成します。たとえば[1, 'hello', true]は(number | string | boolean)[]になります。配列が単一の一貫した型であれば、unionは不要です。