DevToolKits.app
Article

精通以 Zod 進行 JSON 驗證:從類型安全到運行時安全

透過使用 Zod 在運行時驗證 JSON 數據,同時自動獲得 TypeScript 類型安全,進而提升應用程式的可靠性。

Zod 驗證示意圖

什麼是 Zod?

Zod 是一個以 TypeScript 為核心的模式宣告與驗證函式庫。它允許您動態檢查 API 回傳的數據是否符合預期,同時自動提取 TypeScript 類型,確保運行時的可靠性與類型安全性。

為什麼需要運行時驗證?

TypeScript 的類型檢查僅發生在編譯時期。當您的程式碼在瀏覽器運行時,它無法感知 API 回傳的數據是否已變更,或者是否包含意外的 null 值。Zod 填補了這一空白。

基本用法

定義一個模式 (Schema) 並解析您的數據:

import { z } from "zod";

const UserSchema = z.object({
  id: z.number(),
  username: z.string(),
  email: z.string().email(),
});

// 自動提取類型
type User = z.infer<typeof UserSchema>;

// 驗證數據
const result = UserSchema.safeParse(apiData);
if (result.success) {
  const user = result.data; // 已完整定義類型
} else {
  console.error(result.error);
}

Zod 的關鍵特性

  • 零依賴:輕量且高效。
  • 開發者友善:清晰的錯誤訊息與直覺的 API。
  • 強制轉型 (Coercion):可在驗證過程中將字串轉換為數字或日期。
  • 轉換 (Transformation):在數據通過模式時進行清理或修改。

結論

從大型 JSON 結構手動創建 Zod 模式非常繁瑣。使用「JSON 轉 Zod」轉換器可以快速開啟您的開發,為 TypeScript 專案提供堅實的數據驗證基礎。

Related Tools

廣告

廣告