LoginSignup
2
1

Zodで始める型安全な世界: TypeScriptの強力な味方

Last updated at Posted at 2024-02-05

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",
});
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1