JSON 轉 TypeScript

根據 JSON Sample 產生 TypeScript interface 或 type 宣告。

資料與格式
正在準備工作區…
輸入
輸出
結果將顯示在這裡。

使用方法

  1. 貼上文字、開啟 UTF-8 檔案,或試用 Sample。
  2. 選擇輸入與設定,接著執行工具,或啟用自動執行。
  3. 檢查結果後複製或下載。修改輸入會使先前的結果失效。

JSON 轉 TypeScript

根據 JSON Sample 產生 TypeScript interface 或 type 宣告。

處理在瀏覽器本機完成,輸入不會傳送給 DevToolsy。

運作原理

巢狀物件會產生具名型別,陣列中的物件會合併推導:缺少的屬性設為選用,混合值產生聯集型別,空陣列使用 unknown[]。

處理前後對照
輸入
{"project":"DevToolsy","members":[{"name":"Ada","role":"developer"},{"name":"Lin","active":true}],"tags":["web","tools"]}
輸出
export interface Root {
  project: string;
  members: RootMembersItem[];
  tags: string[];
}

export interface RootMembersItem {
  name: string;
  role?: string;
  active?: boolean;
}

根據 JSON Sample 產生 TypeScript interface 或 type 宣告。

選項與資料保真

可設定根型別名稱、interface 或 type、readonly 及所有屬性選用。字串推導為 string,不產生字面值型別。

使用處理結果

單份 Sample 無法涵蓋所有情況,請檢查 null、缺少欄位與數值精確度,並另外加入執行階段驗證。

檢查結果後複製或下載。修改輸入會使先前的結果失效。

處理限制

每份 UTF-8 輸入上限 1 MiB,輸出上限 8 MiB。JSONPath 與 Schema 5 秒逾時,其他工具 30 秒逾時。

?

常見問題

如何推導巢狀物件與陣列?

巢狀物件會產生具名型別,陣列中的物件會合併推導:缺少的屬性設為選用,混合值產生聯集型別,空陣列使用 unknown[]。

可以調整哪些 TypeScript 選項?

可設定根型別名稱、interface 或 type、readonly 及所有屬性選用。字串推導為 string,不產生字面值型別。

產生的型別能驗證後續 API 回應嗎?

不能。單份 Sample 無法涵蓋所有情況,請檢查 null、缺少欄位與數值精確度,並另外加入執行階段驗證。

輸入內容會上傳嗎?

處理在瀏覽器本機完成,輸入不會傳送給 DevToolsy。

可以開啟本機檔案嗎?

UTF-8 輸入最大 1 MiB · 輸出最大 8 MiB

尋找下一個實用工具

語言

要切換語言嗎?目前頁面的內容將被清空。請先複製或下載需要保留的資料。