Declaration Merging

TypeScript 🔴 Senior

Définition

Mécanisme ou plusieurs déclarations du même nom sont fusionnées en une seule définition. S'applique aux interfaces, namespaces et enums.

Analogie

Comme deux équipes qui construisent chacune une aile du même bâtiment — a la fin, c'est un seul édifice.

Exemple de code

interface Box { width: number }
interface Box { height: number }
// Box = { width: number; height: number }
const b: Box = { width: 10, height: 20 };

Cas d'usage

Étendre les types de bibliothèques tierces sans modifier leur code source.

Anti-pattern

Abuser du merging pour patcher des types au lieu de créer des extensions propres — difficulté de traçabilité.
#advanced#interview

En entretien

  1. Explique-moi ce qu'est le declaration merging.

    C'est un mécanisme où plusieurs déclarations du même nom sont fusionnées en une seule définition, ça s'applique aux interfaces, aux namespaces et aux enums.

  2. Quel est le piège si on en abuse ?

    Utiliser le merging pour patcher des types au lieu de créer des extensions propres nuit à la traçabilité du code.

  3. Dans quel cas utiliser ce mécanisme ?

    Pour étendre les types d'une bibliothèque tierce sans modifier son code source, par exemple deux interfaces `Box` qui fusionnent leurs propriétés.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre