TypeScript Academy · Leçon

Motifs pratiques avec les unions et les intersections

Appliquez les unions et les intersections dans des situations concrètes

Leçon 4 sur 413 étapes

Motifs pratiques avec les unions et les intersections est une leçon TypeScript Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage TypeScript Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours TypeScript Academy comprend 4 leçons au total.

Bienvenue

Les types d’union et d’intersection sont à la base de nombreux modèles TypeScript utilisés dans le monde réel. Cette leçon présente des combinaisons pratiques que vous utiliserez dans du code de production.

Modèle de charge utile facultative

Modélisez des fonctions ou des événements qui peuvent ou non transporter des données à l’aide d’une union.
type Event =
  | { type: 'click'; x: number; y: number }
  | { type: 'keypress'; key: string }
  | { type: 'blur' };

Constructeur et composition avec une intersection

Utilisez les intersections pour composer des ensembles de fonctionnalités en un type combiné.
type Serializable = { serialize(): string };
type Validatable = { validate(): boolean };
type Model = Serializable & Validatable & { id: number };

Union pour normaliser les entrées

Acceptez des types d’entrée flexibles dans une fonction et normalisez-les vers un type canonique.
function toArray<T>(val: T | T[]): T[] {
  return Array.isArray(val) ? val : [val];
}

Types marqués avec une intersection

Créez des types distincts à partir du même type primitif en utilisant des intersections avec un marqueur unique.
type UserId = number & { __brand: 'UserId' };
type PostId = number & { __brand: 'PostId' };
// Prevents accidentally mixing IDs

Modèle WithOptional

Utilisez une intersection avec Partial pour créer un type de base dont certains champs sont requis et d’autres facultatifs.
type RequiredFields = { id: number; email: string };
type OptionalFields = Partial<{ name: string; bio: string }>;
type UserUpdate = RequiredFields & OptionalFields;

Propriétés de composants polymorphes

Dans React, les types d’union permettent aux propriétés d’un composant de varier en fonction d’un discriminant.
type ButtonProps =
  | { variant: 'primary'; onClick: () => void }
  | { variant: 'link'; href: string };

Extension de types tiers

Intersectez des types tiers avec vos propres ajouts.
import type { Request } from 'express';
type AuthRequest = Request & { user: User };

Combinaison d’une union et d’une intersection

Les unions et les intersections peuvent être combinées. Les parenthèses contrôlent la priorité.
type Admin = { role: 'admin' };
type User = { role: 'user' };
type LoggedIn = { sessionId: string };
type AuthUser = (Admin | User) & LoggedIn;

Gardes de type pour les membres d’une union

Écrivez une fonction de garde de type réutilisable pour affiner une union sans répéter les vérifications.
function isAdmin(u: AuthUser): u is Admin & LoggedIn {
  return u.role === 'admin';
}

Comportement distributif des intersections

Loi de distributivité : A & (B | C) = (A & B) | (A & C). TypeScript l’applique automatiquement.
type Base = { id: number };
type AB = Base & (string | number);
// equivalent to: (Base & string) | (Base & number)

Vérification rapide

Quel modèle crée un type distinct à partir de `number` pour empêcher le mélange accidentel d’identifiants ?

Récapitulatif

Les types d’union et d’intersection se combinent pour modéliser des structures complexes du monde réel : identifiants marqués, comportements composables, entrées flexibles et propriétés de composants discriminées. Maîtrisez ces modèles pour produire du TypeScript de qualité professionnelle.
Gratuit pour commencer

Apprends TypeScript avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
101
Leçons
352

Questions Fréquemment Posées

La leçon « Motifs pratiques avec les unions et les intersections » est-elle gratuite ?

Oui — le texte complet de « Motifs pratiques avec les unions et les intersections » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours TypeScript Academy, passe à CoddyKit PRO. Le cours TypeScript Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Motifs pratiques avec les unions et les intersections » ?

Appliquez les unions et les intersections dans des situations concrètes Tu pratiques TypeScript Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer TypeScript Academy ?

Aucune expérience préalable n'est requise. TypeScript Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Motifs pratiques avec les unions et les intersections » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon TypeScript Academy ?

Oui. Chaque leçon TypeScript Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Types union : A ou B
  2. Types intersection : A et B
  3. Unions discriminées pour un filtrage sûr par motif
  4. Motifs pratiques avec les unions et les intersections
← Retour à TypeScript Academy