Zod : Validation de schémas TypeScript-first

Guide Zod : définition de schémas, inférence de types, validation, transformations et intégrations pour TypeScript.

Zod : la validation qui comprend TypeScript

Zod est une bibliothèque de validation de schémas qui génère automatiquement les types TypeScript. Définissez votre schéma une fois, obtenez validation runtime et types statiques. Chez Eve Media, Zod est notre outil de validation de référence pour les projets TypeScript.

Le problème résolu

En TypeScript, les types disparaissent au runtime. Vous pouvez définir un type User, mais à l’exécution, rien ne garantit que les données reçues d’une API correspondent. Zod valide à l’exécution ET infère les types.

Définir un schéma

Un schéma Zod décrit la structure attendue des données. z.object() pour les objets, z.string() pour les chaînes, z.number() pour les nombres. Chaînez des validateurs : z.string().email().min(5). La syntaxe est intuitive et composable.

Inférence de types

z.infer extrait le type TypeScript depuis un schéma Zod. Pas besoin de définir le type séparément : le schéma EST la source de vérité. Modifiez le schéma, le type se met à jour automatiquement.

Validation et parsing

schema.parse() valide et retourne les données typées, ou throw une erreur. schema.safeParse() retourne un objet avec success et data ou error. Préférez safeParse pour une gestion d’erreurs explicite.

Messages d’erreur personnalisés

Zod génère des messages d’erreur détaillés par défaut. Personnalisez-les avec le deuxième argument des validateurs. Les erreurs incluent le chemin vers le champ invalide, facilitant l’affichage côté client.

Transformations

Les schémas peuvent transformer les données : z.string().transform(s => s.toLowerCase()). Utile pour normaliser les inputs. Les transformations s’exécutent après la validation.

Schémas optionnels et defaults

.optional() rend un champ optionnel. .default() fournit une valeur par défaut. .nullable() accepte null. .nullish() accepte null et undefined. Ces modificateurs s’adaptent à vos besoins.

Schémas complexes

z.union() pour les types union. z.discriminatedUnion() pour les unions discriminées (plus performant). z.intersection() pour combiner des schémas. z.array() pour les tableaux avec validation des éléments.

Validation de formulaires

Zod s’intègre parfaitement avec React Hook Form via @hookform/resolvers. La validation côté client utilise le même schéma que le serveur. Une seule source de vérité pour vos règles de validation.

Validation d’API

Validez les payloads d’API à l’entrée de vos endpoints. En Next.js ou tRPC, Zod valide automatiquement les inputs. Les données invalides sont rejetées avant d’atteindre votre logique métier.

Variables d’environnement

Zod excelle pour valider les variables d’environnement. Définissez un schéma pour process.env, validez au démarrage. Les erreurs de configuration sont détectées immédiatement, pas en production.

Conclusion

Zod élimine la duplication entre types et validation. La sécurité de type s’étend au runtime sans effort supplémentaire. C’est devenu un standard dans l’écosystème TypeScript moderne.

Chez Eve Media, nous utilisons Zod dans tous nos projets TypeScript. Contactez-nous pour des développements robustes et type-safe.

Partager sur :

Autres

Audit Digital & SEO

Audit Digital & SEO

Audit Digital & SEO : Optimisez Votre Présence et Vos Performances Web Avoir un site internet esthétique est une première étape, mais s’assurer qu’il soit

Éco-conception de Sites Internet

Éco-conception de Sites Internet : Allier Performance Numérique et Responsabilité Écologique L’éco-conception des sites web est une démarche essentielle pour créer des plateformes numériques performantes

Envoyer un message

WhatsApp