0Pricing
TypeScript Academy · Leçon

Extension et fusion d’interfaces

Étendez les interfaces et comprenez la fusion des déclarations

Extension et fusion d’interfaces est une leçon TypeScript Academy gratuite sur CoddyKit. Ceci est la leçon 3 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 interfaces peuvent étendre d’autres interfaces pour s’appuyer sur des structures existantes, et TypeScript fusionne automatiquement plusieurs déclarations d’une même interface.

Étendre une interface

Utilisez le mot-clé `extends` pour créer une nouvelle interface qui inclut toutes les propriétés de l’interface parente.
interface Animal { name: string; }
interface Dog extends Animal {
  breed: string;
}
const rex: Dog = { name: 'Rex', breed: 'Labrador' };

Étendre plusieurs interfaces

Une interface peut étendre plusieurs interfaces à la fois, en combinant toutes leurs propriétés.
interface Flyable { fly(): void; }
interface Swimmable { swim(): void; }
interface Duck extends Flyable, Swimmable {
  quack(): void;
}

Redéfinir des propriétés lors d’une extension

Une interface étendue peut redéfinir une propriété de l’interface parente, mais le nouveau type doit être compatible avec le type parent.
interface Base { value: string | number; }
interface Derived extends Base { value: string; } // OK — string is narrower
// interface Bad extends Base { value: boolean; } // Error

Fusion de déclarations

Lorsque vous déclarez deux interfaces portant le même nom, TypeScript les fusionne en une seule interface contenant toutes leurs propriétés.
interface Window { title: string; }
interface Window { location: Location; }
// Merged: Window has both title and location

Étendre les types d’une bibliothèque

La fusion de déclarations sert à étendre les types de bibliothèques tierces. Vous pouvez par exemple ajouter des propriétés à l’interface Request d’Express.
// express.d.ts
declare namespace Express {
  interface Request {
    user?: User;
  }
}

Une interface étendant un alias de type

Une interface peut étendre un alias de type, à condition que cet alias soit un type objet.
type Named = { name: string };
interface User extends Named { email: string; }

Chaînes d’extension imbriquées

Les chaînes d’extension peuvent comporter plusieurs niveaux.
interface A { a: number; }
interface B extends A { b: number; }
interface C extends B { c: number; }
const obj: C = { a: 1, b: 2, c: 3 };

Héritage ou implémentation

`extends` sert à l’héritage d’une interface par une autre interface ou d’une classe par une autre classe. `implements` sert à ce qu’une classe respecte le contrat d’une interface.
interface Serializable { serialize(): string; }
class Model implements Serializable {
  serialize() { return JSON.stringify(this); }
}

La fusion s’applique à toutes les utilisations

Lorsque des interfaces fusionnent, tout le code existant qui utilise cette interface obtient automatiquement les nouvelles propriétés, ce qui permet l’extension des bibliothèques.

Fusion ou extension : quand utiliser chacune

Utilisez `extends` pour créer une nouvelle interface à partir d’une interface existante. Utilisez la fusion (avec le même nom) pour ajouter des éléments à une interface depuis un fichier distinct, par exemple lors d’une extension.

Vérification rapide

Quelle fonctionnalité de TypeScript permet d’ajouter des propriétés à une interface provenant d’une bibliothèque tierce ?

Récapitulatif

Les interfaces étendent d’autres interfaces avec `extends`, en combinant leurs structures. La fusion de déclarations combine automatiquement les interfaces portant le même nom. Cela permet d’étendre une bibliothèque sans modifier son code tiers.

Questions Fréquemment Posées

La leçon « Extension et fusion d’interfaces » est-elle gratuite ?

Oui — le texte complet de « Extension et fusion d’interfaces » 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 « Extension et fusion d’interfaces » ?

Étendez les interfaces et comprenez la fusion des déclarations 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 3 sur 4.

Combien de temps prend la leçon « Extension et fusion d’interfaces » ?

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. Définir la structure des objets avec des interfaces
  2. Alias de types pour les types complexes
  3. Extension et fusion d’interfaces
  4. Interface ou type : quand utiliser chacun
← Retour à TypeScript Academy