使い方
- テキストを貼り付け、UTF-8 ファイルを開くか、サンプルを試してください。
- 入力と設定を選び、実行するか自動実行を有効にしてください。
- 結果を確認してコピー・保存します。入力を変えると前の結果は無効になります。
JSON to TypeScript
JSON サンプルから TypeScript の interface や type を生成します。
処理はブラウザー内で完結し、入力は DevToolsy に送信されません。
仕組み
ネストしたオブジェクトは名前付きの型になります。配列内のオブジェクトを統合し、欠けたプロパティは省略可能、混在した値はユニオン型にします。空配列は unknown[] です。
{"project":"DevToolsy","members":[{"name":"Ada","role":"developer"},{"name":"Lin","active":true}],"tags":["web","tools"]}export interface Root {
project: string;
members: RootMembersItem[];
tags: string[];
}
export interface RootMembersItem {
name: string;
role?: string;
active?: boolean;
}
JSON サンプルから TypeScript の interface や type を生成します。
オプションとデータの保持
ルート型名、interface / type、readonly、省略可能なプロパティを選べます。文字列はリテラル型ではなく string になります。
結果の利用
1 つのサンプルでは全ケースを表せません。null、欠落フィールド、数値精度を確認し、実行時検証を別途追加してください。
結果を確認してコピー・保存します。入力を変えると前の結果は無効になります。
UTF-8 入力は各文書 1 MiB、出力は 8 MiB まで。JSONPath と Schema は 5 秒、その他は 30 秒でタイムアウト。
よくある質問
オブジェクトや配列はどう推論されますか?
ネストしたオブジェクトは名前付きの型になります。配列内のオブジェクトを統合し、欠けたプロパティは省略可能、混在した値はユニオン型にします。空配列は unknown[] です。
どの TypeScript 設定を変更できますか?
ルート型名、interface / type、readonly、省略可能なプロパティを選べます。文字列はリテラル型ではなく string になります。
将来の API レスポンスも検証できますか?
できません。1 つのサンプルでは全ケースを表せません。null、欠落フィールド、数値精度を確認し、実行時検証を別途追加してください。
入力はアップロードされますか?
処理はブラウザー内で完結し、入力は DevToolsy に送信されません。
ローカルファイルを開けますか?
UTF-8 入力は最大 1 MiB · 出力は最大 8 MiB