【ゾッド】
Zod とは?
💡 データの「門番」→ 怪しいデータは通さない!
📌 このページのポイント
- TypeScriptの型はコンパイル時だけ有効で、実行時には消えてしまう。Zodは実行時にもデータの型を検証できる
- スキーマ定義から自動でTypeScriptの型を推論してくれるので、型定義の二重管理が不要になる
- APIレスポンスやフォーム入力など、外部から来る「信用できないデータ」の検証に特に便利
- tRPCやReact Hook Formなど多くのライブラリと連携でき、TypeScriptエコシステムの中核的存在になっている
TypeScriptで型を書いてるのに、なんでさらにバリデーションが必要なの?
いい質問だね。TypeScriptの型はコンパイル時にだけ有効で、実行時には完全に消えてしまうんだ。APIから返ってきたデータや、ユーザーが入力した値は「本当にその型かどうか」実行時には分からないんだよ
じゃあ、ifで1個ずつチェックするしかないの?
スキーマ定義とTypeScriptの型を両方書かなきゃいけないの?
そこがZodのすごいところで、スキーマから自動的にTypeScriptの型を推論してくれるんだ。z.inferを使えば型の二重管理が不要になるよ
どういう場面で使うことが多いの?
他のバリデーションライブラリと何が違うの?
TypeScriptとの統合が段違いに優れているのが最大の特徴だね。Joiやyupもあるけど、Zodは最初からTypeScriptファーストで設計されているから型推論が完璧なんだ。tRPCやReact Hook Formなどの人気ライブラリとも連携が強いから、今のTypeScriptエコシステムでは事実上の標準になりつつあるよ
まとめ:ざっくりこれだけ覚えればOK!
「Zod」って出てきたら「TypeScriptで実行時にもデータの型をチェックしてくれるライブラリ」と思えればだいたいOK!
📖 おまけ:英語の意味
「Zod」 = ゾッド
💬 DCコミックスのスーパーマンに登場する将軍ゾッドが名前の由来と言われているよ。データを厳格に統制するイメージだね