Zod
実行時にスキーマ検証を行うTypeScriptライブラリ。型はコンパイル時に消えるため、外から届いたJSONは誰かが確かめるまで事実上 any のままだ、という問題を解く。
スキーマを一度書くだけで、 z.object({ email: z.string().email(), age: z.number().int() }) のように、実行時の検証器と z.infer による静的な型が同時に得られる。二重定義がなく、型と検証がずれる心配もない。 parse() は失敗すると例外を投げ、 safeParse() は結果オブジェクトを返す。作者はColin McDonnell(2020年)で、今ではtRPC、React Hook Form、TanStack Formのほか、フォーム入力を受けるNext.jsプロジェクトの多くで標準的な選択肢になっている。代替にはValibot(バンドルが小さい)、Yup(より古い)、ArkTypeなどがあり、Standard Schemaによってライブラリ同士が交換可能になりつつある。