0Pricing
TypeScript Academy · Leçon

T extends U ? X : Y en pratique

Écrivez des types conditionnels pratiques ; découvrez la distribution sur les unions et comment la désactiver lorsque nécessaire.

T extends U ? X : Y en pratique est une leçon TypeScript Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 3. 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 3 leçons au total.

Introduction

Objectif : utilisez les types conditionnels pour exprimer la logique dans le système de types et comprenez quand ils se distribuent sur les unions.

  • Motif : T extends U ? X : Y
  • Distribution : applique une branche à chaque membre de l’union

Motif de base

Les types conditionnels choisissent une branche selon que T est assignable à string.

type IsString<T> = T extends string ? true : false

type A = IsString<string>
//   ^ true

type B = IsString<number>
//   ^ false

Distribution

Avec un T nu, la vérification s’exécute pour chaque membre de l’union : string | number devient string[] | number[].

type ToArray<T> = T extends any ? T[] : never

type C = ToArray<string | number>
// distributes:
// C is string[] | number[]

Désactiver la distribution

Entourez T d’un tuple ([T]) pour empêcher la distribution et traiter l’union dans son ensemble.

type ToArrayNoDist<T> = [T] extends [any] ? T[] : never

type D = ToArrayNoDist<string | number>
// no distribution:
// D is (string | number)[]

Utilitaire concret

Exemple de ce motif : pour les tableaux, ElementType utilise infer pour extraire l’élément ; sinon, il laisse le type tel quel.

type NonEmptyArray<T> = T[] extends [] ? never : T[]
// Usually better:
// type ElementType<T> = T extends ReadonlyArray<infer U> ? U : T

type E1 = ElementType<string[]>
//   ^ string

type E2 = ElementType<readonly number[]>
//   ^ number

type E3 = ElementType<string>
//   ^ string

Conseils

Conseils : gardez les conditions simples ; tenez compte du déploiement ; réutilisez les types auxiliaires ; incluez des fichiers de test pour les combinaisons complexes.

// Tips
// - Keep conditions simple; deep nesting harms readability
// - Document distribution behavior for teammates
// - Prefer helper aliases (ElementType, Awaited) for reuse
// - Watch for De Morgan like logic when composing unions

Vérification de la distribution

Vérification rapide : quand les types conditionnels se distribuent-ils ?

Récapitulatif

Récapitulatif : les types conditionnels modélisent la logique dans les types. La distribution s’applique à chaque membre de l’union ; utilisez un tuple pour la désactiver.

Questions Fréquemment Posées

La leçon « T extends U ? X : Y en pratique » est-elle gratuite ?

Oui — le texte complet de « T extends U ? X : Y en pratique » 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 3 leçons au total.

Qu'est-ce que j'apprendrai dans « T extends U ? X : Y en pratique » ?

Écrivez des types conditionnels pratiques ; découvrez la distribution sur les unions et comment la désactiver lorsque nécessaire. 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 1 sur 3.

Combien de temps prend la leçon « T extends U ? X : Y en pratique » ?

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. T extends U ? X : Y en pratique
  2. infer pour les utilitaires de type ReturnType
  3. Types intégrés : ReturnType, Parameters, InstanceType, etc.
← Retour à TypeScript Academy