Structural Typing
TypeScript 🟡 MidDé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
Termes liés
En entretien
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.
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.
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