Interface
Dans la programmation orientée objet, une interface décrit l'ensemble des propriétés et des méthodes qu'un objet expose. Un objet qui implémente une interface peut être manipulé correctement lorsqu'il est passé à des fonctions ou des constructions conçues pour interagir avec de telles interfaces. En général, une interface est considérée comme un contrat : en dehors du comportement de ces propriétés et méthodes, les objets implémentant la même interface peuvent ne pas être liés de quelque manière que ce soit à l'exécution.
Le langage JavaScript lui-même définit certaines interfaces, telles que itérable, semi-promesse, et jetable, qui interagissent avec des constructions du langage telles que syntaxe de propagation, await, et using. En raison de l'absence de compilation ou de vérification de type statique, ces contrats ne sont incarnés par aucune construction du langage, donc MDN les appelle également « protocoles ».
En TypeScript, la déclaration interface (angl.) crée des interfaces dont l'implémentation peut être vérifiée à la compilation.
Dans la terminologie des standards du Web (WebIDL en particulier), une interface décrit la structure des objets fournis par les API Web. Contrairement au sens OOP, les interfaces en WebIDL sont en réalité incarnées sous la forme d'une fonction constructeur et d'un objet prototype. Par exemple, l'interface HTMLButtonElement est exposée sous la forme du constructeur HTMLButtonElement et de l'objet HTMLButtonElement.prototype (dont héritent toutes les instances). Cela rend les interfaces WebIDL plus similaires aux classes JavaScript. Une interface peut hériter d'autres interfaces et peut inclure des membres provenant de mixins.
Voir aussi
- Utiliser les classes
- L'entrée de glossaire WebIDL
- L'entrée de glossaire Mixin
- Information contenue dans un fichier WebIDL
- Interface (programmation orientée objet) (angl.) sur Wikipedia
- La spécification WebIDL (angl.)