typia pour 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

Qu'est-ce que typia et pourquoi l'utiliser ?

typia est une bibliothèque puissante pour TypeScript qui offre une validation de types à l'exécution (runtime type validation) avec une caractéristique unique : elle génère le code de validation à la compilation (compile-time), et non à l'exécution. Cela en fait l'une des bibliothèques de validation de données les plus rapides de l'écosystème TypeScript.

Les principaux problèmes résolus par typia :

  • Performance : Contrairement aux bibliothèques populaires (zod, yup, io-ts), typia n'utilise ni réflexion ni décorateurs. Elle génère un code de validation optimisé lors de la compilation, offrant un gain de vitesse de 10 à 100 fois.
  • Sécurité des types : Vous obtenez la garantie que les données provenant de sources externes (API, bases de données, formulaires) correspondent à vos interfaces TypeScript.
  • Code minimal : Inutile d'écrire des schémas de validation séparés — typia utilise vos types TypeScript existants.
  • Prise en charge des types complexes : Union, intersection, conditional types, mapped types — tout fonctionne "prêt à l'emploi".

Cette bibliothèque est particulièrement utile pour :

  • Le développement backend avec Node.js et TypeScript
  • Les applications frontend nécessitant la validation de formulaires ou de réponses API
  • L'architecture microservices où la vitesse de sérialisation/désérialisation est cruciale
  • Les projets où la performance et la sécurité des types sont critiques

Installation

L'installation de typia se déroule en deux étapes : la bibliothèque elle-même et le transformateur TypeScript (compilateur).

Étape 1. Installation via npm

npm install typia
# ou
yarn add typia
# ou
pnpm add typia

Étape 2. Installation du transformateur

npm install --save-dev typia-transform
# ou
yarn add -D typia-transform
# ou
pnpm add -D typia-transform

Étape 3. Configuration de tsconfig.json

Ajoutez le plugin dans votre tsconfig.json :

{
  "compilerOptions": {
    "plugins": [
      {
        "transform": "typia-transform"
      }
    ]
  }
}

Étape 4. Utilisation avec ttypescript (recommandé)

Installez ttypescript pour une transformation automatique :

npm install --save-dev ttypescript

Remplacez ensuite tsc par ttsc dans vos scripts package.json :

{
  "scripts": {
    "build": "ttsc",
    "start": "node dist/index.js"
  }
}

Important : typia nécessite TypeScript version 4.4 ou supérieure. Sans le transformateur, la bibliothèque ne fonctionnera pas.

Démarrage rapide avec un exemple de code

Créons un exemple simple de validation de données utilisateur.

import typia from "typia";

// Définir une interface
interface IUser {
  id: number;
  name: string;
  email: string;
  age: number;
  isActive: boolean;
}

// Créer une fonction de validation
const validateUser = typia.createValidate<IUser>();

// Données de test
const testData = {
  id: 1,
  name: "Jean Dupont",
  email: "jean@exemple.com",
  age: 30,
  isActive: true,
};

// Validation
const result = validateUser(testData);

if (result.success) {
  console.log("Données valides :", result.data);
} else {
  console.log("Erreur de validation :", result.errors);
}

// Exemple avec des données incorrectes
const badData = {
  id: "pas un nombre", // Doit être number
  name: "Jean",
  email: "pas un email",
  age: -5,
  isActive: "oui", // Doit être boolean
};

const badResult = validateUser(badData);
console.log("Erreurs :", badResult.errors);

Cet exemple montre à quel point il est facile de valider des données en utilisant uniquement une interface TypeScript. Aucun schéma ou décorateur supplémentaire n'est nécessaire !

Méthodes et fonctions principales

1. typia.createValidate<T>()

Fonctionnement : Crée une fonction de validation pour le type T. Retourne un objet

Recommendations