Zod valide les données à l'exécution (runtime) et infère les types TypeScript. Schémas, transform et parse safe. Remplace Yup et s'impose pour les formulaires et les APIs en TypeScript.

On définit un schéma (z.object, z.string, z.array, etc.) ; parse valide et lève une erreur en cas d'échec, safeParse retourne un résultat. Les types TypeScript sont inférés automatiquement depuis le schéma. Les transform permettent de normaliser les données. Pour les formulaires (React Hook Form, etc.), les APIs (validation des body) et la configuration (env vars), Zod assure la cohérence entre runtime et typage. Écosystème riche (zod-to-json-schema, trpc).

Conseil : valider toutes les entrées (formulaires, API, env) avec Zod et exposer les messages d'erreur en UI.

Points forts / Points faibles

Points forts

  • Validation + inférence de types
  • API fluide et composable
  • Messages d'erreur personnalisables
  • Adopté par tRPC, React Hook Form, etc.

Points faibles

  • Bundle size si on n'utilise qu'une partie
  • Performances sur de très gros schémas
  • Documentation des cas avancés à explorer