← inaro.devAI駆動開発 学習ツール
応用

zodでランタイム検証

なぜ学ぶか: TypeScriptの型は「開発中の約束」で、実行時には消えてしまいます。つまり、APIの返事やフォーム入力など「外から来るデータ」には型の保護が効きません。この穴を埋めるのがzod。前にやったasの、正しい代わりです。

まずはこの例を見てみましょう

import { z } from "zod";

// 「実行時」にデータの形を検査するルールを作る
const UserSchema = z.object({
  name: z.string(),
  age: z.number(),
});

// APIから届いたばかりの、形が保証されていないデータ
const raw = JSON.parse('{"name":"Ada","age":36}');

const result = UserSchema.safeParse(raw); // 実際に検査
if (result.success) {
  result.data; // 検査ずみ。安心して使える
}

as(言い張るだけ)と違い、zodは実際に検査してから通します。

型は実行時に消える

動いているアプリは「User型のはず」を一切チェックしません。外部データがその形である保証はどこにもないのです。

zod=実行時の検問所

例のsafeParseが実際に検査します。合格なら型付きデータ、不合格ならエラー情報が返ります。

使う場所は「外との境目」

APIの返事・フォーム入力など、外から来るデータに使います。自分のコード内で作った値には不要です。

asの正しい代わり

外部データにasを使っているAIコードを見たら、「ここzodにできる?」が最高の指摘です。

ステップ 1 / 3

※ カリキュラムの内容はAIが生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。