L04 — Exercices Zod
10 exercices progressifs · Validation en temps réel · Solutions incluses
const { z } = Zod; au début de vos exemples.
Validez votre code en cliquant sur Valider.
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().
Valider un email
Créez un schéma de validation d'email avec z.string().email().
Testez avec des emails valides et invalides.
Valider un score
Créez un schéma pour un score entre 0 et 100 avec z.number().min(0).max(100).
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()).
.optional() vs .nullable()
Créez deux schémas : un avec .optional() (accepte undefined)
et un avec .nullable() (accepte null). Montrez la différence.
safeParse — Afficher les erreurs
Utilisez .safeParse() sur des données invalides et affichez
les erreurs depuis result.error.issues sans lever d'exception.
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.
.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.
.transform() — Normaliser les données
Utilisez .transform(val => ...) pour normaliser les données lors de
la validation (ex: trim + toLowerCase sur un email).
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.