跳到主要內容

JSON 轉 TypeScript

JSON 轉 TypeScript 會在瀏覽器本機將 JSON 樣本轉換為 TypeScript interface 與 type,支援可選欄位、union/null/Date 推斷、根型別名稱,以及複製或下載 .ts 輸出。

JSON

字元

0 / 50,000

TypeScript

JSON 轉 TypeScript

快速開始

1
將有效 JSON 樣本貼到左側編輯器。
2
可選設定根型別名,例如 ApiResponse。
3
在右側查看 TypeScript:物件產生 interface,陣列或原始值產生 type。
4
複製或下載產生的 .ts;輸入區也可複製或下載 JSON 樣本。

常見使用情境

把真實 API 回應快速整理成前端頁面、SDK 客戶端或介面聯調時可直接使用的 TypeScript 型別。

在正式定義介面契約前,先用 JSON 樣本觀察可選欄位、null 與聯集型別的推斷結果。

把 mock JSON 資料快速轉成測試夾具、Storybook 範例或原型階段可用的型別定義。

當後端回應結構調整時,用最新 JSON 樣本快速檢查 User、Meta 等巢狀宣告是否需要同步更新。

使用建議

盡量提供代表性的 JSON 樣本。本頁基於樣本推論類型,沒出現的欄位或取值不會出現在輸出裡。
空陣列會產生 unknown[];空物件會產生擴充 Record<string, unknown> 的 interface,直到你提供更完整的樣本。
巢狀宣告會依屬性名稱做正規化,因此新輸出更常出現 User、Meta 這類名稱,而不是舊版的根名前綴形式。
只有在 JSON 合法時才會產生結果。若解析失敗,編輯器會顯示錯誤的行號與列號。
合法的自訂根型別名會原樣保留;非法名稱會被正規化為合法的 PascalCase TypeScript 識別字。

類型推斷邊界

產生器只根據目前樣本推斷,不讀取 JSON Schema、OpenAPI、GraphQL、檔案、URL、JSON Lines 或批次樣本。
陣列會合併已觀察到的元素結構:部分元素缺少的欄位會變成可選欄位,null 或混合取值會進入聯合類型。
類似日期的字串可能被推斷為 Date,但執行時期的 JSON 值仍然是 string,除非你的程式碼主動解析它。
物件根節點產生 interface;陣列和原始值根節點產生 type;空陣列使用 unknown[],空物件擴展 Record<string, unknown>。
根型別名稱預設為 Root。合法自訂名稱會保留;非法名稱和保留字會規範化為 PascalCase。
輸出只是靜態 TypeScript 宣告:不會產生執行時期驗證器、解析器、序列化器、Zod/Yup/io-ts schema 或 API client。

限制與相容性

該工具基於樣本資料推斷類型,而不是基於正式 schema 或介面契約真源。樣本裡沒出現的欄位無法被自動猜出。
輸入必須是嚴格 JSON。註解、尾隨逗號與其它 JavaScript 風格語法都會被拒絕。
目前產生的 TypeScript 程式碼不會自動附帶 export 宣告;下載 .ts 檔案與在程式碼中新增 export 關鍵字是兩件事。
輸出僅為靜態 TypeScript 宣告,不會產生執行時期驗證器、解析器、序列化邏輯、Zod schema 或 API client。

隱私與安全

JSON 轉 TypeScript 在瀏覽器本地完成。JSON 輸入可能作為瀏覽器草稿保留。若啟用已儲存工作區或 WebDAV 同步,JSON 輸入、根型別名稱、輸入/輸出行號偏好和換行偏好可能隨同步儲存。產生的 TypeScript、驗證錯誤、行/列醒目標示、複製狀態和復原歷史都由目前輸入衍生,不會儲存為單獨結果資料。輸入 JSON 下載和 .ts 輸出下載只會在點擊下載時建立。本工具不會上傳檔案或建立附件。

常見問題

6

可繼續使用這些相關工具,完成後續步驟。

所有工具處理都在您的瀏覽器本地完成。