🚀 Une réduction de bundle significative
L’un des points forts de cette version est la réduction drastique de la taille du bundle. Cela a été rendu possible par une réécriture interne du code source et la suppression de certains patterns redondants.
Impact :
- Meilleures performances à l’exécution
- Chargement plus rapide sur le frontend
- Meilleure compatibilité avec les environments serverless
⚡ Rapidité de parsing améliorée
Zod v4 optimise le parsing avec une logique plus fine et moins récursive, ce qui se traduit par une exécution plus rapide.
Exemple :
const UserSchema = z.object({ name: z.string(), email: z.email(), }); const result = UserSchema.safeParse({ name: "Antho", email: "a@b.com" });
En v4, ce parsing est plus rapide qu’en v3, grâce à une meilleure gestion des erreurs et une logique de validation centralisée.
📦 Génération de schemas JSON
Grande nouveauté : Zod permet désormais de générer automatiquement des JSON Schema à partir de vos définitions Zod.
Exemple :
import { z } from "zod"; import { zodToJsonSchema } from "zod-to-json-schema"; const Product = z.object({ id: z.string(), price: z.number(), }); const jsonSchema = zodToJsonSchema(Product, "Product"); console.log(JSON.stringify(jsonSchema, null, 2));
Parfait pour la génération automatique de documentation ou l'intégration avec OpenAPI.
✉️ Déplacement de l’API Email
Dans v4, la méthode
z.string().email()a été déplacée dans une API
z.email()pour renforcer la cohérence de l’API.
Avant :
z.string().email();
Maintenant :
z.email();
🔍 Validation Email : regex revue
Le validateur d’e-mail utilise désormais une expression régulière plus stricte et conforme aux standards modernes. Cela réduit les faux positifs et améliore la fiabilité du champ.
Exemple de validation :
z.email(); z.email({ pattern: z.regexes.html5Email }); z.email({ pattern: z.regexes.rfc5322Email }); z.email({ pattern: z.regexes.unicodeEmail });
📁 Validation de fichiers
Zod v4 introduit une validation native de fichiers pour les plateformes qui supportent
File.
Exemple :
const FileSchema = z.file(); fileSchema.min(10_000); // taille minimale (bytes) fileSchema.max(1_000_000); // taille maximale (bytes) fileSchema.type("image/png"); // MIME type
Très utile pour les formulaires web ou les API REST multipart.
🧭 NativeEnum est déprécié
Zod v4 déprécie
z.nativeEnum()au profit d’une approche plus explicite avec
z.enum().
Avant :
enum Role { Admin = "admin", User = "user", } const schema = z.nativeEnum(Role);
Maintenant :
const schema = z.enum(Role);
Avantage : moins de magie, plus de clarté, et meilleure compatibilité JSON.
🗃️ z.record amélioré
La méthode
z.record()accepte désormais une signature plus souple, et peut également s’imbriquer plus facilement.
Exemple :
const dictionary = z.record(z.string(), z.number());
🔍 Des types plus précis et stricts
Zod v4 améliore la précision des types générés par vos schémas.
Cela permet :
- un meilleur auto-complete dans vos IDE
- moins d’erreurs de typage cachées
- des intégrations plus fluides avec TypeScript strict
Exemple :
const schema = z.object({ name: z.string(), age: z.number(), }); type User = z.infer<typeof schema>; // User = { name: string; age: number }
Les types sont plus fiables qu’en v3 grâce à la réécriture du système d’inférence.
🧩 Nouveaux hooks de parsing
Zod v4 introduit des hooks plus puissants avec
transform,
refineet
superRefine, qui vous permettent de contrôler finement la validation.
Exemple avec transform :
const schema = z.transform(input => String(input)); schema.parse(12); // => "12"
🧱 Migration de v3 à v4
La plupart des schémas existants fonctionnent toujours, mais quelques ajustements peuvent être nécessaires :
- Remplacer
z.nativeEnum
parz.enum
- Vérifier les impacts des regex plus strictes (ex:
.email()
)
Conclusion
Zod v4 est une mise à jour majeure qui garde l’ADN de simplicité de la librairie tout en proposant des fonctionnalités modernes, robustes et adaptées aux projets professionnels.
Que ce soit pour de la validation frontend, backend, ou de l’API contract-first, Zod reste un choix de premier plan 💼
➡️ Consulter la documentation officielle
#TypeScript #Zod #Validation #Frontend #Backend #DX #Zodv4 #OpenAPI #Schema