L04 — Exercices Zod

10 exercices progressifs · Validation en temps réel · Solutions incluses

Zod est chargé sur cette page. Accédez-y via const { z } = Zod; au début de vos exemples. Validez votre code en cliquant sur Valider.
EX 1

Valider un nom d'utilisateur

Créez un schéma Zod pour valider un nom d'utilisateur : z.string().min(3).max(50). Testez-le avec .safeParse().

EX 2

Valider un email

Créez un schéma de validation d'email avec z.string().email(). Testez avec des emails valides et invalides.

EX 3

Valider un score

Créez un schéma pour un score entre 0 et 100 avec z.number().min(0).max(100).

EX 4

Schéma utilisateur avec z.object()

Créez un schéma z.object() complet pour un utilisateur avec au moins id (number), nom (string), email (string.email()).

EX 5

.optional() vs .nullable()

Créez deux schémas : un avec .optional() (accepte undefined) et un avec .nullable() (accepte null). Montrez la différence.

EX 6

safeParse — Afficher les erreurs

Utilisez .safeParse() sur des données invalides et affichez les erreurs depuis result.error.issues sans lever d'exception.

EX 7

z.array() — Tableau typé

Créez un schéma avec z.array(z.string()) pour valider un tableau de chaînes de caractères. Ajoutez des contraintes sur la taille du tableau.

EX 8

.refine() — Validation personnalisée

Utilisez .refine(val => condition, 'message') pour une validation personnalisée, par exemple vérifier que deux mots de passe sont identiques.

EX 9

.transform() — Normaliser les données

Utilisez .transform(val => ...) pour normaliser les données lors de la validation (ex: trim + toLowerCase sur un email).

EX 10

Schéma d'inscription complet

Créez un schéma complet pour un formulaire d'inscription : nom, email, mot de passe, confirmMotDePasse, avec .refine() pour vérifier les mots de passe et .safeParse() pour les erreurs.

← Revoir le cours → Mini-projet Formulaire