コンテンツにスキップ
Dev Classmethod Jp Articles Shoma Try Zod Typescript Type Inference Val 4926bd94

TypeScript の型推論つきバリデーションライブラリ Zod を使ってみた

  • URL: https://dev.classmethod.jp/articles/shoma-try-zod-typescript-type-inference-validation-library
  • 日付: 2026-06-23
  • Tier: Tier 2
  • 要旨: Zod は TypeScript スキーマ宣言・バリデーションライブラリ。1 つのスキーマから parse/safeParse(実行時バリデーション)と z.infer(静的型生成)の両方を出力。型定義とバリデーションロジック統一管理で保守性向上。従来は interface + isValidUser 関数で型定義・チェック別途実装でした。

詳細

Zod は 1 つのスキーマ定義で「実行時チェック」と「静的型」両方取得。userSchema = z.object({name:z.string().min(1), age:z.int().gte(0)}) で①z.infer で コンパイル時に型 User={name:string, age:number} 生成、②safeParse(input) でランタイムバリデーション実行。

従来方式の課題:interface User 型定義と isValidUser(input) チェック関数を別々実装。フィールド追加するたびに両方修正必要。DRY 原則違反。

Zod 利点:スキーマ 1 つで保守性向上。フィールド変更時は z.object 1 箇所の修正で済む。型と実行時チェックの同期不整合がない。