Qu'est-ce que Zod ?
Zod est une bibliothèque de validation déclarative et d'analyse de données, écrite en TypeScript. Elle permet de décrire des schémas de données (les schémas sont des descriptions strictes de types) et de vérifier la conformité de tout objet, chaîne de caractères, nombre, etc. La principale caractéristique de Zod est son intégration complète avec TypeScript : les types sont automatiquement déduits à partir du schéma, ce qui évite la duplication des définitions.
Pourquoi la validation des données est-elle nécessaire ?
Dans les applications réelles, les données proviennent souvent de sources externes (API, formulaires, fichiers de configuration, localStorage). Sans validation, il est facile d'obtenir des bugs, des attaques XSS ou un comportement inattendu. Zod garantit que les données correspondent à la structure attendue et génère des erreurs claires si quelque chose ne va pas.
Installation
npm install zodLa bibliothèque ne nécessite aucune configuration supplémentaire et fonctionne aussi bien dans Node.js que dans le navigateur (avec un bundler).
Fonctions principales
- Création de schémas :
z.string(),z.number(),z.object(),z.array(), etc. - Analyse et validation : la méthode
.parse()retourne les données ou lève une erreur ;.safeParse()retourne un objet avec les champs success/data/error. - Transformation :
.transform()permet de modifier les données après une validation réussie. - Refine : validations personnalisées avec
.refine(). - Inférence de types :
z.infer<typeof schema>génère un type TypeScript.
Exemple de code en TypeScript
import { z } from 'zod';
// Définit un schéma pour un utilisateurconst UserSchema = z.object({ id: z.number().int().positive(), name: z.string().min(2).max(50), email: z.string().email(), age: z.number().min(18).max(120).optional(), role: z.enum(['admin', 'user', 'guest'])});
// Infère le type à partir du schématype User = z.infer<typeof UserSchema>;
// Utilise safeParse pour une validation sécuriséeconst rawData = { id: 1, name: 'Анна', email: 'anna@example.com', age: 25, role: 'admin'};
const result = UserSchema.safeParse(rawData);if (result.success) { console.log('Données valides :', result.data);} else { console.error('Erreurs :', result.error.errors);}Quand utiliser Zod
Zod est idéal pour :
- La validation des données d'entrée d'une API (par exemple, dans Express ou Next.js).
- La vérification des données de formulaires côté client et serveur.
- L'analyse des variables d'environnement (
dotenv+ Zod). - Le travail avec des fichiers de configuration (JSON/YAML).
- La création de types stricts pour des données dynamiques.
Grâce à la prise en charge complète de TypeScript, Zod rend le code plus sûr et plus lisible, en éliminant la désynchronisation entre les types et les données réelles.
Aussi dans la bibliothèque
Travailler avec les dates en Kotlin : aperçu des bibliothèques et outils
Files d'attente de tâches pour Swift : guide complet sur GCD et Operation Queues
Event Bus et le pattern Observer en JavaScript (Node.js) : implémentation et exemples
Diesel pour Rust : guide complet avec exemples
Remeda pour TypeScript : guide complet avec exemples