🔷 JSON 到 TypeScript -- 即時介面產生器,免費且離線
貼上任何 JSON 物件或陣列,這個工具會立即產生 TypeScript 介面(或類型別名)定義 —— 完全免費,無需登入,無需上傳,並在您的瀏覽器中 100% 運行。巢狀物件會變成巢狀介面,物件陣列會合併成一個帶有可選欄位的類型結構,混合類型的陣列會自動產生聯集類型。
隱私優先設計. 此工具完全在您的瀏覽器中運行 — 您輸入的內容不會上傳或儲存,而且它可以在離線狀態下使用。
關於
這個 JSON 到 TypeScript 轉換器使用純粹的客戶端類型推論遍歷器 —— 無需外部函式庫,也無需伺服器呼叫。它會遞迴訪問 JSON 中的每個節點:基本值對應到 string、number、boolean 或 null;巢狀物件會產生命名的子介面;物件陣列會合併所有元素的結構,因此某些元素中缺少的鍵會變成可選(key?: Type);混合類型的陣列會自動產生聯集類型,例如 (string | number)[]。您可以選擇介面或類型別名的輸出格式,並設定根介面的名稱。所有操作都在您的瀏覽器中進行 —— 您的 JSON 資料從未被傳送至任何地方。
如何使用
- 將您的 JSON 貼到輸入欄位中 —— 物件、陣列或巢狀結構都適用。
- 設定根介面的名稱(預設:RootObject),並選擇介面或類型別名的輸出格式。
- 點選「轉換為 TypeScript」(或按下 Ctrl+Enter)即可立即產生定義。
- 查看 TypeScript 輸出結果 —— 巢狀介面會先出現,根介面最後出現。
- 點選「複製」將結果複製到剪貼簿,並直接貼到您的 TypeScript 專案中。
常見問題
- 這個工具會上傳我的 JSON 到伺服器嗎?
- 不會。所有處理都在您的瀏覽器中透過 JavaScript 完全進行。您的 JSON 絕對不會離開您的設備。
- 它如何處理具有不同結構的物件陣列?
- 所有元素的結構會合併成一個介面。每個元素都包含的鍵是必填的;任何元素中缺少的鍵會標記為可選(帶有 ?)。
- 介面和類型輸出模式之間有什麼區別?
- 介面使用 TypeScript 介面宣告(可擴充,適合物件形狀)。type 使用 type 別名(更靈活,支援基本類型和聯合類型在根層級)。對於物件形狀,兩者產生的結果是相同的。
- 它能處理深層嵌套的 JSON 嗎?
- 可以。type walker 是完全遞歸的 —— 每個嵌套物件都會產生自己的命名介面,且介面會按照依賴順序輸出(最深的先輸出),因此 TypeScript 編譯時不會出現前向引用錯誤。
- 如果我的 JSON 陣列包含混合類型,例如字串和數字,會發生什麼?
- 混合類型的陣列會產生聯合類型。例如,[1, 'hello', true] 會變成 (number | string | boolean)[]。如果陣列只有一種一致的類型,就不需要聯合類型。
- 此工具會上傳我的資料嗎?
- 不會。所有運作都在您的瀏覽器中進行,因此您的資料永遠不會離開您的設備 — 頁面載入後,它甚至可以在離線狀態下使用。