0Pricing
TypeScript Academy · レッスン

zodによる実行時バリデーション(入門)

zodのスキーマでJSONレスポンスを実行時に検証し、コンパイル時の型だけでは得られない安全性を確保します

「zodによる実行時バリデーション(入門)」はCoddyKit上の無料TypeScript Academyレッスンです。 これはレッスン2/2です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはTypeScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 TypeScript Academyコースには全2レッスンが含まれています。

導入

目標:zod で実行時の安全性を追加します。コンパイル時の型だけでは不十分なため、スキーマで実際のデータを検証します。

zod のインストール

TS/JS で広く使われている実行時スキーマ検証ライブラリ、zod をインストールします。

npm install zod

スキーマの定義

z.object() でスキーマを作成します。z.infer<typeof Schema> を使用すると、スキーマから TS の型を生成できます。

import { z } from "zod";

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

type User = z.infer<typeof UserSchema>;

Schema.parse()

Schema.parse() を呼び出してデータを検証します。JSON がスキーマに一致しない場合はエラーがスローされます。

async function getUser() {
  const res = await fetch("/user.json");
  const raw = await res.json();
  const parsed = UserSchema.parse(raw);
  console.log(parsed.id, parsed.name);
}

safeParse

safeParse は success フィールドと error フィールドを持つオブジェクトを返します。例外をスローするよりも安全です。

const result = UserSchema.safeParse(raw);
if (!result.success) {
  console.error(result.error);
} else {
  console.log(result.data);
}

ネストしたスキーマ

スキーマは、配列、オブジェクト、オプショナルフィールドなどの形でネストできます。

const PostSchema = z.object({
  id: z.number(),
  title: z.string(),
  tags: z.array(z.string())
});

const raw = { id: 1, title: "Hello", tags: ["ts", "zod"] };
const post = PostSchema.parse(raw);

バリデーションの確認

簡単な確認:JSON を解析した後に zod で検証するのはなぜですか?

振り返り

振り返り:zod のスキーマは実行時の JSON を検証します。安全性を確保するには parse または safeParse を使用します。

よくある質問

「zodによる実行時バリデーション(入門)」レッスンは無料ですか?

はい。「zodによる実行時バリデーション(入門)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、TypeScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 TypeScript Academyコースには全2レッスンが含まれています。

「zodによる実行時バリデーション(入門)」で何を学びますか?

zodのスキーマでJSONレスポンスを実行時に検証し、コンパイル時の型だけでは得られない安全性を確保します ブラウザで直接実行するハンズオンコードでTypeScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

TypeScript Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのTypeScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/2です。

「zodによる実行時バリデーション(入門)」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このTypeScript Academyレッスンでコードを書いて実行できますか?

はい。すべてのTypeScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Fetch APIの型、Response.json()のジェネリクス
  2. zodによる実行時バリデーション(入門)
← TypeScript Academyに戻る