Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Schnittstelle

Im objektorientierten Programmieren beschreibt eine Schnittstelle die Menge von Eigenschaften und Methoden, die ein Objekt bereitstellt. Ein Objekt, das eine Schnittstelle implementiert, kann korrekt behandelt werden, wenn es an Funktionen oder Konstrukte übergeben wird, die zur Zusammenarbeit mit solchen Schnittstellen entworfen wurden. In der Regel wird eine Schnittstelle als Vertrag behandelt: Abgesehen vom Verhalten dieser Eigenschaften und Methoden müssen Objekte, die dieselbe Schnittstelle implementieren, zur Laufzeit in keiner Weise miteinander verwandt sein.

Die JavaScript-Sprache selbst definiert einige Schnittstellen, wie iterable, thenable und disposable, die mit Sprachkonstrukten wie spreading, await und using zusammenarbeiten. Aufgrund des Fehlens von Kompilierung oder statischer Typprüfung werden diese Verträge nicht durch Sprachkonstrukte verkörpert, sodass MDN sie auch als "Protokolle" bezeichnet.

In TypeScript erstellt die interface-Deklaration Schnittstellen, deren Implementierung zur Kompilierungszeit erzwungen werden kann.

In der Terminologie der Webstandards (insbesondere WebIDL) beschreibt eine Schnittstelle die Struktur von Objekten, die von Web-APIs bereitgestellt werden. Anders als im OOP-Sinn sind Schnittstellen in WebIDL tatsächlich in Form einer Konstruktorfunktion und eines Prototyp-Objekts verkörpert. Zum Beispiel wird die HTMLButtonElement-Schnittstelle als der HTMLButtonElement-Konstruktor und das HTMLButtonElement.prototype-Objekt bereitgestellt (von dem alle Instanzen erben). Dies macht WebIDL-Schnittstellen ähnlicher dem Verhalten von JavaScript-Klassen. Eine Schnittstelle kann von anderen Schnittstellen erben und kann Mitglieder von Mixins enthalten.