Zodとは
TypeScriptで使用するためのバリデーションライブラリです。型安全な方法でデータの検証を行うことができ、特にAPIのリクエストやレスポンスのバリデーション、アプリケーション内でのデータ構造の検証に役立ちます。Zodを使うと、開発者はスキーマを定義して、そのスキーマに基づいてデータの形状や型をチェックできます。このプロセスは完全に型安全であり、TypeScriptの型推論の恩恵を受けることができます。
Zodの主な特徴
型安全なバリデーション
ZodはTypeScriptの型システムを活用し、コンパイル時に型安全を保証します。これにより、ランタイムエラーのリスクを減らしつつ、開発の生産性を高めることができます。
簡単なスキーマ定義
Zodを使用すると、オブジェクト、配列、文字列、数値、日付など、さまざまなデータ型のスキーマを簡単に定義できます。これにより、データの構造と期待される型が明確になります。
カスタムバリデーション
ユーザーはカスタムバリデーション関数を定義して、特定の検証ロジックを実装することができます。これにより、アプリケーション固有のバリデーション要件に柔軟に対応できます。
エラーハンドリング
Zodはバリデーションエラーを詳細に報告し、どのフィールドがどのような理由でバリデーションに失敗したかを簡単に特定できるようにします。
使用例
Zodは、APIのリクエストボディやクエリパラメータの検証、設定ファイルや外部サービスからのデータの構造検証など、さまざまなシナリオで役立ちます。たとえば、外部APIからのレスポンスの形状をチェックするためにスキーマを定義し、そのスキーマに基づいてデータを検証することができます。
Zodは、型安全性を重視するTypeScriptの開発者にとって、強力で便利なツールです。開発プロセスをより効率的かつエラーの少ないものにし、アプリケーションの品質を向上させることが期待できます。
基本的な型
文字列
import { z } from 'zod';
const stringSchema = z.string();
数値
const numberSchema = z.number();
ブール値
const booleanSchema = z.boolean();
オブジェクト
const userSchema = z.object({
name: z.string(),
age: z.number(),
email: z.string().email(),
});
配列
const userSchema = z.object({
name: z.string(),
age: z.number(),
email: z.string().email(),
});
タプル
const tupleSchema = z.tuple([z.string(), z.number(), z.boolean()]);
列列挙型
const tupleSchema = z.tuple([z.string(), z.number(), z.boolean()]);
カスタムバリデーション
const passwordSchema = z.string().min(8).max(20).refine((val) => /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/.test(val), {
message: "Password must contain at least one letter and one number",
});