J'ai une interface générique comme cet exemple avec une seule contrainte de type :
export interface IExample<T extends MyClass> {
getById(id: number): T;
}
Est-il possible de spécifier plusieurs contraintes de type au lieu d'une seule ?
J'ai une interface générique comme cet exemple avec une seule contrainte de type :
export interface IExample<T extends MyClass> {
getById(id: number): T;
}
Est-il possible de spécifier plusieurs contraintes de type au lieu d'une seule ?
Typescript n'offre pas de syntaxe pour obtenir l'héritage multiple pour les types génériques. Cependant, vous pouvez obtenir une sémantique similaire en utilisant les types Union et Intersection. Dans votre cas, vous voulez une intersection :
interface Example<T extends MyClass & OtherClass> {}
Pour une Union des deux types :
interface Example<T extends MyClass | OtherClass> {}
Ref le commentaire sur une interface dérivant d'une classe... qu'est-ce qu'un nom ?
J'ai trouvé ceci dans la section 3.5 de la spécification 0.9.0 :
Les déclarations d'interface n'introduisent que des types nommés, alors que les classes introduisent des types nommés et des fonctions de construction qui créent des instances d'implémentations de ces types nommés. Les types nommés nommés introduits par les déclarations de classes et d'interfaces n'ont que des différences mineures mineures (les classes ne peuvent pas déclarer de membres optionnels et les interfaces et les interfaces ne peuvent pas déclarer de membres privés) et sont dans la plupart des contextes interchangeables. En particulier, les déclarations de classes avec seulement des membres publics membres publics introduisent des types nommés qui fonctionnent exactement comme ceux créés par des déclarations d'interface.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.