0Pricing
TypeScript Academy · Leçon

Réduction avancée des types

Apprenez à utiliser des gardes de types avancées et l’analyse du flux de contrôle pour gérer facilement des conditions de types complexes.

Réduction avancée des types 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 à l’affinement avancé des types

Introduction à l’affinement avancé des types

L’affinement avancé des types vous permet de préciser des types complexes lors de l’exécution à l’aide de techniques avancées telles que les gardes de type, l’analyse du flux de contrôle et les prédicats personnalisés.

Ces outils rendent votre code TypeScript plus sûr et plus prévisible.

Réduction avancée des types — illustration 1

Qu’est-ce que l’affinement des types ?

Qu’est-ce que l’affinement des types ?

L’affinement des types est le processus qui consiste à transformer un type large (par exemple, string | number) en un type plus précis à l’aide de vérifications effectuées lors de l’exécution.

Utiliser <code>typeof</code> pour affiner les types

Utiliser typeof pour affiner les types

L’opérateur typeof peut être utilisé pour affiner les types primitifs :

function printValue(value: string | number): void {
  if (typeof value === 'string') {
    console.log(`String: ${value}`);
  } else {
    console.log(`Number: ${value}`);
  }
}

printValue('Hello'); // String: Hello
printValue(42); // Number: 42

Utiliser <code>instanceof</code> pour affiner les types

Utiliser instanceof pour affiner les types

L’opérateur instanceof peut être utilisé pour affiner les instances de classes :

class Dog {
  bark() {
    console.log('Woof!');
  }
}

class Cat {
  meow() {
    console.log('Meow!');
  }
}

function makeSound(animal: Dog | Cat): void {
  if (animal instanceof Dog) {
    animal.bark();
  } else {
    animal.meow();
  }
}

makeSound(new Dog()); // Woof!
makeSound(new Cat()); // Meow!

Utiliser des gardes de type personnalisées

Utiliser des gardes de type personnalisées

Vous pouvez créer des fonctions de garde de type personnalisées pour affiner les types avec davantage de précision :

type Fish = { swim: () => void };
type Bird = { fly: () => void };

declare const animal: Fish | Bird;

function isFish(animal: Fish | Bird): animal is Fish {
  return (animal as Fish).swim !== undefined;
}

if (isFish(animal)) {
  animal.swim();
} else {
  animal.fly();

Analyse du flux de contrôle

Analyse du flux de contrôle

L’analyse du flux de contrôle de TypeScript affine automatiquement les types en fonction du déroulement logique de votre code :

function getLength(value: string | string[]): number {
  if (Array.isArray(value)) {
    return value.length;
  } else {
    return value.length;
  }
}

console.log(getLength('Hello')); // 5
console.log(getLength(['a', 'b', 'c'])); // 3

Avantages de l’affinement avancé des types

Avantages de l’affinement avancé des types

L’affinement avancé des types améliore votre code en :

  • Réduisant les erreurs lors de l’exécution.
  • Rendant le code plus sûr et plus facile à comprendre.
  • Permettant de contrôler précisément la gestion des types.

Exercice pratique

Exercice pratique

Créez une fonction qui reçoit un paramètre de type string | number et journalise un message différent pour chaque type. Utilisez typeof pour implémenter la logique.

Félicitations !

Félicitations !

Vous avez appris à utiliser des techniques avancées d’affinement des types en TypeScript pour préciser et gérer des types complexes de manière sûre et efficace. Entraînez-vous à appliquer ces techniques pour rendre votre code plus robuste et plus sûr du point de vue des types !

Réduction avancée des types — illustration 10

Questions Fréquemment Posées

La leçon « Réduction avancée des types » est-elle gratuite ?

Oui — le texte complet de « Réduction avancée des types » 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 « Réduction avancée des types » ?

Apprenez à utiliser des gardes de types avancées et l’analyse du flux de contrôle pour gérer facilement des conditions de types complexes. 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 « Réduction avancée des types » ?

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. Réduction avancée des types
  2. Fonctionnalités avancées des classes
  3. Types conditionnels
← Retour à TypeScript Academy