TypeStack/class-validator TypeScript : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

TypeStack/class-validator pour TypeScript : guide complet avec exemples

1. Qu'est-ce que c'est et pourquoi l'utiliser ?

La bibliothèque TypeStack/class-validator est un outil puissant pour la validation de données en TypeScript et JavaScript, basé sur les décorateurs. Elle permet aux développeurs de définir des règles de validation directement dans les classes, en utilisant des décorateurs de propriétés. Cela rend le code plus lisible, auto-documenté et simplifie considérablement le traitement des données entrantes, notamment lors de l'utilisation d'API REST, de formulaires ou de toute autre source de données.

Pourquoi est-elle nécessaire ? Dans le développement web moderne, les données proviennent de multiples sources : requêtes HTTP, fichiers de configuration, bases de données. Sans une validation fiable, ces données peuvent entraîner des erreurs d'exécution, des failles de sécurité ou simplement un fonctionnement incorrect de l'application. class-validator résout ce problème en offrant une méthode déclarative pour vérifier les données. Au lieu d'écrire de lourdes structures if-else, il suffit d'ajouter des décorateurs aux propriétés de la classe, et la bibliothèque vérifie automatiquement leur conformité aux règles définies.

Un autre avantage clé est l'intégration étroite avec TypeScript. Les décorateurs permettent non seulement de valider les données, mais aussi de définir leurs types, rendant le processus de développement plus sûr et plus prévisible. La bibliothèque prend en charge un large éventail de validateurs intégrés (des simples vérifications de longueur de chaîne aux expressions régulières complexes) et permet de créer facilement vos propres validateurs personnalisés.

2. Installation

Pour installer la bibliothèque class-validator et sa dépendance obligatoire reflect-metadata, exécutez la commande suivante dans le terminal de votre projet :

npm install class-validator reflect-metadata

Après l'installation, assurez-vous que les options suivantes sont activées dans votre fichier tsconfig.json pour le bon fonctionnement des décorateurs :

{
  "compilerOptions": {
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true
  }
}

Il est également important d'importer reflect-metadata au tout début de votre application (généralement dans le fichier principal index.ts ou app.ts) :

import "reflect-metadata";

3. Démarrage rapide

Voici un exemple minimal fonctionnel. Créons une classe utilisateur avec validation des champs :

import "reflect-metadata";
import { validate, IsString, IsEmail, MinLength } from "class-validator";

class User {
    @IsString()
    @MinLength(3, { message: "Le nom doit contenir au moins 3 caractères" })
    name: string;

    @IsEmail({}, { message: "Email invalide" })
    email: string;

    constructor(name: string, email: string) {
        this.name = name;
        this.email = email;
    }
}

async function main() {
    const user = new User("Jo", "email-invalide");
    const errors = await validate(user);

    if (errors.length > 0) {
        console.log("Erreurs de validation :");
        errors.forEach(error => {
            console.log(`- ${error.property}: ${Object.values(error.constraints).join(", ")}`);
        });
    } else {
        console.log("Validation réussie !");
    }
}

main();
// Résultat :
// Erreurs de validation :
// - name: Le nom doit contenir au moins 3 caractères
// - email: Email invalide

Dans cet exemple, nous avons créé la classe User, ajouté des décorateurs à ses propriétés et appelé la fonction validate(). Elle retourne un tableau d'erreurs si les données ne respectent pas les règles.

4. Méthodes/fonctions/classes principales

Examinons 8 fonctions et classes clés de la bibliothèque

Recommendations