logo oujood
🔍

🎯 Types Unions et Types Littéraux en TypeScript

Dans ce chapitre, tu vas découvrir deux outils très puissants de TypeScript : les types unions et les types littéraux. Ils permettent d'indiquer qu'une variable peut avoir plusieurs valeurs ou types possibles, tout en gardant un haut niveau de contrôle.

OUJOOD.COM

🔀 Les types unions

Un type union permet à une variable d’accepter plusieurs types possibles. On utilise le caractère | (barre verticale) pour les séparer.

📌 Exemple simple :

📋 Copier le code

let identifiant: number | string;

identifiant = 123;       // ✅ OK
identifiant = "abc123";  // ✅ OK
identifiant = true;      // ❌ Erreur : boolean n'est pas autorisé
  • identifiant peut être un number ou un string.
  • Mais pas un boolean, car il n’est pas inclus dans l’union.

📦 Utilisation typique : gestion d’entrées flexibles

On utilise souvent les types unions lorsqu’on veut accepter différentes formes de données en entrée.

📋 Copier le code

function afficherPrix(prix: number | string): void {
  console.log("Prix : " + prix + " €");
}

afficherPrix(19.99);   // OK
afficherPrix("19.99"); // OK
  • La fonction accepte un prix en number ou en string.
  • Utile pour gérer les entrées d'utilisateur (souvent des chaînes).

📐 Les types littéraux

Un type littéral permet de limiter une variable à des valeurs précises, comme un ensemble de choix autorisés.

📌 Exemple avec des devises :

📋 Copier le code

let devise: "EUR" | "USD" | "MAD";

devise = "EUR";  // ✅ OK
devise = "USD";  // ✅ OK
devise = "CAD";  // ❌ Erreur : non autorisé
  • devise n’accepte que les valeurs "EUR", "USD" ou "MAD".
  • Impossible d’y mettre une valeur non définie, même si elle est textuelle.

🎮 Exemple d’état de bouton :

📋 Copier le code

type EtatBouton = "actif" | "inactif" | "desactive";

let etat: EtatBouton = "actif";
etat = "desactive";     // ✅ OK
etat = "cliqué";        // ❌ Erreur
  • Le type EtatBouton est une union de littéraux.
  • Utile pour gérer des états, rôles, statuts avec sécurité maximale.

🎯 Combiner union + types personnalisés

On peut combiner les types unions avec type ou interface pour des données riches.

📋 Copier le code

type Genre = "homme" | "femme" | "autre";

interface Personne {
  nom: string;
  genre: Genre;
}

let p1: Personne = { nom: "Alex", genre: "autre" };
let p2: Personne = { nom: "Emma", genre: "inconnu" }; // ❌ Erreur

📌 Résumé

  • Type union : permet plusieurs types (ex : string | number)
  • Type littéral : limite les valeurs possibles à une liste définie
  • Très utile pour contrôler des statuts, états, choix fixes

🧭 Prochaine étape

Dans le chapitre suivant, tu découvriras les enum (énumérations), une autre façon très puissante de gérer des valeurs fixes nommées.

Souhaites-tu passer au Chapitre 9 : Enums et constantes en TypeScript ?