開發工具
JSON 轉 TypeScript — interface 及 type 類型產生器
在瀏覽器將 JSON 範例轉成 TypeScript interface 或 type,支援巢狀物件、陣列、可選屬性及聯合類型,並可複製產生的宣告。
從 JSON 產生 TypeScript 類型初稿。上限:輸入 100,000 個 UTF-16 編碼單位、深度 64(根層為 0)、10,000 個值;輸出 500,000 個字元及 1,000 個類型宣告。本工具不會傳送輸入內容;頁面資源、流量分析及廣告仍可能使用網絡連線。
請輸入 JSON 以產生類型。
輸出是一組類型宣告。沒有加入 export 時,請放在已有 import 或 export 的模組內,或在獨立檔案加入 export {}。在全域指令碼中,Array、Node 等名稱可能與現有類型衝突。亦請檢查同一作用域內的其他類型名稱。
使用方法及推斷範圍
工具根據範例中出現的值推斷類型。陣列中部分物件缺少某項屬性時,該屬性會設為可選;不同類型會組成聯合類型。只有 null 的屬性仍是 null 類型,即使設為可選亦不會移除 null。空陣列為 unknown[];只有空物件時為 Record<string, unknown>。
小型物件內嵌適用於最多兩項屬性的子物件。readonly 限制屬性重新賦值,不會令陣列元素變成不可變。根資料為陣列或原始類型時,一律使用 type。日期字串仍是 string。
不能推斷範例以外的值或業務規則,也不會在執行期間驗證或轉換資料。number 不保證數值精度或範圍。格式化獨立於類型設定及宣告數量上限,會檢查 JSON 語法與輸入、輸出長度,並保留數值的原有寫法。同一物件有重複鍵時,類型推斷採用最後一個值。請在使用的專案中確認類型及數值處理方式。

