🛝Toolio
關於 聯絡

🔷 JSON 到 TypeScript -- 即時介面產生器,免費且離線

貼上任何 JSON 物件或陣列,這個工具會立即產生 TypeScript 介面(或類型別名)定義 —— 完全免費,無需登入,無需上傳,並在您的瀏覽器中 100% 運行。巢狀物件會變成巢狀介面,物件陣列會合併成一個帶有可選欄位的類型結構,混合類型的陣列會自動產生聯集類型。

隱私優先設計. 此工具完全在您的瀏覽器中運行 — 您輸入的內容不會上傳或儲存,而且它可以在離線狀態下使用。

關於

這個 JSON 到 TypeScript 轉換器使用純粹的客戶端類型推論遍歷器 —— 無需外部函式庫,也無需伺服器呼叫。它會遞迴訪問 JSON 中的每個節點:基本值對應到 string、number、boolean 或 null;巢狀物件會產生命名的子介面;物件陣列會合併所有元素的結構,因此某些元素中缺少的鍵會變成可選(key?: Type);混合類型的陣列會自動產生聯集類型,例如 (string | number)[]。您可以選擇介面或類型別名的輸出格式,並設定根介面的名稱。所有操作都在您的瀏覽器中進行 —— 您的 JSON 資料從未被傳送至任何地方。

如何使用

  1. 將您的 JSON 貼到輸入欄位中 —— 物件、陣列或巢狀結構都適用。
  2. 設定根介面的名稱(預設:RootObject),並選擇介面或類型別名的輸出格式。
  3. 點選「轉換為 TypeScript」(或按下 Ctrl+Enter)即可立即產生定義。
  4. 查看 TypeScript 輸出結果 —— 巢狀介面會先出現,根介面最後出現。
  5. 點選「複製」將結果複製到剪貼簿,並直接貼到您的 TypeScript 專案中。

常見問題

這個工具會上傳我的 JSON 到伺服器嗎?
不會。所有處理都在您的瀏覽器中透過 JavaScript 完全進行。您的 JSON 絕對不會離開您的設備。
它如何處理具有不同結構的物件陣列?
所有元素的結構會合併成一個介面。每個元素都包含的鍵是必填的;任何元素中缺少的鍵會標記為可選(帶有 ?)。
介面和類型輸出模式之間有什麼區別?
介面使用 TypeScript 介面宣告(可擴充,適合物件形狀)。type 使用 type 別名(更靈活,支援基本類型和聯合類型在根層級)。對於物件形狀,兩者產生的結果是相同的。
它能處理深層嵌套的 JSON 嗎?
可以。type walker 是完全遞歸的 —— 每個嵌套物件都會產生自己的命名介面,且介面會按照依賴順序輸出(最深的先輸出),因此 TypeScript 編譯時不會出現前向引用錯誤。
如果我的 JSON 陣列包含混合類型,例如字串和數字,會發生什麼?
混合類型的陣列會產生聯合類型。例如,[1, 'hello', true] 會變成 (number | string | boolean)[]。如果陣列只有一種一致的類型,就不需要聯合類型。
此工具會上傳我的資料嗎?
不會。所有運作都在您的瀏覽器中進行,因此您的資料永遠不會離開您的設備 — 頁面載入後,它甚至可以在離線狀態下使用。