Generic Constraint (extends)
TypeScript 🟡 MidDefinition
Restriction appliquee a un parametre generique via extends pour garantir qu'il possede certaines proprietes. Limite les types acceptables.
Analogie
Comme un casting de film — tout le monde peut postuler, mais il faut au minimum savoir chanter.
Exemple de code
function getLength<T extends { length: number }>(x: T) {
return x.length;
}
getLength("hello"); // OK
getLength([1, 2]); // OK
// getLength(42); // Erreur: pas de length
Cas d'usage
Garantir qu'un generique possede les proprietes necessaires avant de les utiliser.
Anti-pattern
Contraindre trop largement (extends object) ou pas assez — soit trop restrictif, soit pas assez sur.