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が生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。