QQuickKit

JSON 轉 TypeScript

貼上 JSON 資料,自動推斷結構並產生對應的 TypeScript interface 定義,支援巢狀物件與陣列型別推斷

關於此工具

串接後端 API 或除錯資料結構時,開發者經常需要手動為 JSON response 撰寫對應的 TypeScript 型別定義,這個過程繁瑣且容易出錯。QuickKit 的 JSON 轉 TypeScript 工具會遞迴分析貼入的 JSON 結構,自動推斷欄位型別並產生對應的 interface 定義,巢狀物件會產生具名子 interface,陣列元素型別不一致時會產生聯集型別,完全在瀏覽器本地完成,不會上傳您的資料。

功能特色

  • 遞迴型別推斷 — 自動分析巢狀物件與陣列結構,逐層產生對應的 TypeScript interface。
  • 陣列聯集型別 — 陣列元素型別不一致時自動產生聯集型別(如 (string | number)[])。
  • 具名子 Interface — 巢狀物件依照所在欄位鍵名轉換為 PascalCase 具名 interface,名稱衝突自動加上數字後綴。
  • 自訂根 Interface 名稱 — 可自行指定最外層 interface 的名稱,方便直接貼入專案程式碼。
  • 完全本地執行 — 所有型別推斷運算皆在瀏覽器完成,JSON 內容不會傳送至伺服器。

常見問題

為什麼陣列欄位有時候會產生 unknown[]?
當陣列元素的型別種類超過 5 種時,為避免產生難以閱讀的巨大聯集型別,工具會將該欄位 fallback 為 unknown[],此時建議您手動檢視原始資料並自行調整型別定義。
巢狀物件的 interface 名稱是怎麼決定的?
工具會以該物件所在的欄位鍵名轉換為 PascalCase 作為 interface 名稱,例如 userProfile 欄位會產生 UserProfile interface。若同名但結構不同的 interface 重複出現,後續會自動加上數字後綴(如 Address2)加以區分。
這個工具能處理 JSON Schema 的進階語法嗎?
不行。本工具只做純粹的結構型別推斷(依實際 JSON 值判斷型別),不支援 JSON Schema 的 oneOf、格式驗證等進階概念,適合「貼上 API 回應直接拿 interface」的常見情境。
產生的型別可以直接用在正式專案嗎?
產生結果可作為良好的起點,但建議您依實際業務邏輯手動調整,例如將某些欄位標示為可選(optional)、補充精確的聯合型別或使用更嚴謹的型別(如日期字串改用自訂 Date 型別別名)。

延伸閱讀