Structural Typing

TypeScript 🟡 Mid

Définition

Système de typage ou la compatibilité est basée sur la structure (propriétés/méthodes) et non sur le nom du type. Deux types avec la même forme sont compatibles.

Analogie

Comme un recruteur qui juge sur les compétences réelles plutôt que sur le diplôme — si tu sais faire le job, tu es accepte.

Exemple de code

interface Point { x: number; y: number }
const p = { x: 1, y: 2, z: 3 };
const accept = (pt: Point) => pt.x;
accept(p); // OK: p a x et y

Cas d'usage

Permet l'interopérabilité entre modules sans couplage fort sur les noms de types.

Anti-pattern

Supposer que deux types avec le même nom sont identiques — c'est la structure qui compte, pas le nom.
#core#interview#type-system

En entretien

  1. Explique-moi le structural typing de TypeScript.

    C'est un système où la compatibilité entre types est basée sur la structure, propriétés et méthodes, et non sur le nom du type.

  2. Quel est le piège si on suppose que deux types du même nom sont identiques ?

    C'est la structure qui compte, pas le nom, donc deux types portant le même nom peuvent être incompatibles s'ils n'ont pas la même forme.

  3. Quel avantage ça apporte entre modules ?

    Ça permet l'interopérabilité entre modules sans couplage fort sur les noms de types, un objet avec des propriétés en trop restant accepté tant qu'il a les champs requis.

Fiche mise à jour le 2026-09-27

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