
什麼是 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 專案提供堅實的數據驗證基礎。