JSON 轉 TypeScript 產生器

JSON 輸入

正在載入編輯器…

生成的 TypeScript

Configuration

TypeScript 產生選項

產生介面而非型別別名

當屬性可能為 undefined 時將其標記為可選

新增 JSON 資料以產生 TypeScript 型別

產生介面、型別與強型別物件

如何將 JSON 轉換為 TypeScript – 步驟指南

使用此 JSON 轉 TypeScript 產生器,可從 JSON 範例快速產生型別安全的介面與型別,適合前端應用與 Node.js 服務。

  1. 步驟 1 – 貼上 JSON 範例

    • 將具有代表性的 JSON 物件或陣列貼到左側編輯器。
    • 盡量包含巢狀物件、陣列與可為 null 的欄位,方便正確推斷型別。
    • 使用 匯入 從檔案、URL 或示例資料載入 JSON。
  2. 步驟 2 – 選擇 TypeScript 產生選項

    • 設定與模型一致的 根型別名稱(例如 Root)。
    • 選擇 null 處理策略(可選 (?)聯合 (| null)),與程式碼風格一致。
    • 決定輸出為 interfacetype,配合你的專案習慣。
  3. 步驟 3 – 檢查產生的程式碼

    • 確認欄位命名、型別推斷,以及陣列/物件的對應方式是否符合預期。
    • 依需求調整 根型別名稱、null 處理策略與可選的框架選項。
    • 若某些欄位推斷不準確,優化 JSON 範例後重新產生。
  4. 步驟 4 – 在專案中使用產生型別

    • 將輸出放入專案的型別檔案中,並從模組匯出。
    • 在 API 回應、DTO 與執行期解析邊界使用這些型別。
    • 當 JSON payload 變動時重新產生,保持前後端同步。
  5. 步驟 5 – 複製或下載

    • 將輸出複製到專案中,或下載成檔案。
    • 執行格式化/程式碼檢查工具,讓風格與專案一致。
    • 若目標語言需要序列化/解析函式庫,請在專案中加入相依套件。

快速提示

  • 對真正不確定的欄位可先用 unknown,再在驗證後收窄型別。
  • 如果 API 不穩定,建議產生 JSON Schema 並在執行期驗證。
  • 將產生檔與手寫程式分離,方便後續替換與更新。
範例輸出(簡化)
// JSON 輸入
{
  "id": 123,
  "name": "Maeve Winters",
  "email": "[email protected]",
  "active": true,
  "roles": ["admin", "editor"],
  "metadata": { "plan": "pro" },
  "createdAt": "2024-03-01T10:15:00Z",
  "score": 99.5,
  "notes": null
}

// 產生的 TypeScript 型別(簡化)
export interface Metadata {
  plan: string;
}

export interface Root {
  id: number;
  name: string;
  email: string | null;
  active: boolean;
  roles: string[];
  metadata: Metadata;
  createdAt: string;
  score: number;
  notes: null;
}

相關 JSON 與 TypeScript 工具

探索更多可與本 JSON 轉 TypeScript 產生器搭配使用的 JSON 與 Schema 工具。

常見問題

產生的程式碼支援哪些 TypeScript 特性?

產生器會建立具備完整型別安全的 TypeScript 介面、型別與類別。支援可選屬性、聯合型別、巢狀介面、陣列型別與適當的 null 處理,並相容於最新 TypeScript 標準。

產生器如何處理複雜的巢狀 JSON 結構?

複雜的巢狀物件會轉換為獨立的 TypeScript 介面並建立正確的型別關係;陣列也會被正確型別化。產生器會建立與 JSON 結構相符的型別階層,同時保持型別安全。

我可以自訂型別中的 null 與 undefined 處理嗎?

可以,你可以選擇不同的策略:使用 '?' 的可選屬性、使用 '| null' 的聯合型別,或完全忽略 null 值,依你想要的嚴格程度調整。

產生的 TypeScript 程式碼可用於正式環境嗎?

當然可以!產生的程式碼遵循 TypeScript 最佳實務,包含適當的匯出,可直接匯入 TypeScript 專案。介面設計易於維護,並遵循標準命名慣例。

JSON 轉 TypeScript 產生器 | JSONSwiss