Die häufigste Deklarationszusammenführung in TS (Schnittstellenzusammenführung)

Die häufigste Deklarationszusammenführung in TS (Schnittstellenzusammenführung)

Vorwort:

Worüber ich heute sprechen möchte, hängt immer noch mit TS zusammen. Die häufigste Deklarationszusammenführung in TS: Schnittstellenzusammenführung

Bevor wir über das Zusammenführen von Schnittstellen sprechen, sprechen wir über das Zusammenführen von Deklarationen

Deklarationszusammenführung:

Was ist eine Deklarationszusammenführung?

Tatsächlich ist es leicht zu verstehen, dass das Zusammenführen von Deklarationen in TS bedeutet, dass der Compiler Deklarationen mit demselben Namen zu einer Deklaration zusammenführt.

Das Ergebnis der Fusion:

Die zusammengeführte Erklärung weist die Merkmale von zwei oder mehr Originalerklärungen auf.

zweifeln:
Worauf beziehen sich diese beiden oder noch mehr konkret?

Tatsächlich gibt es mehrere Situationen, über die man sprechen muss. Heute werden wir über eine davon sprechen. Die einfachste und häufigste Art der Deklarationszusammenführung ist die Schnittstellenzusammenführung.

1. Schnittstelle zusammenführen

Wir haben gerade gesagt, dass „die zusammengeführte Deklaration die Merkmale von zwei oder mehr Originaldeklarationen aufweisen wird“.

Dasselbe gilt für das Zusammenführen von Schnittstellen, bei dem die Mitglieder beider Parteien in eine Schnittstelle mit demselben Namen eingefügt werden.

Es ist zu beachten, dass die Mitglieder in der Schnittstelle Funktionsmitglieder und Nichtfunktionsmitglieder umfassen und die Situation unterschiedlich ist

1.1 Mitglieder ohne Funktion

Zum Beispiel:

Schnittstellenbox {
    Höhe: Zahl;
}

Schnittstellenbox {
    Breite: Zahl;
}

let box: Box = {Höhe: 2, Breite: 3};


Im obigen Code werden zwei Schnittstellen mit demselben Namen Box definiert (in der tatsächlichen Entwicklung können sie aus verschiedenen Dateien stammen) und die Inhalte werden schließlich miteinander vermischt.

Es ist jedoch zu beachten, dass die Mitglieder in den oben genannten Fällen eindeutig sind. Wenn jedoch zwei Schnittstellen nichtfunktionale Mitglieder mit demselben Namen deklarieren und ihre Typen unterschiedlich sind, meldet der Compiler einen Fehler.

1.2 Funktionsmitglieder

Für die darin enthaltenen Funktionsmitglieder wird jede Funktionsdeklaration mit demselben Namen als Überladung dieser Funktion behandelt. Und wenn Schnittstelle A mit einer späteren Schnittstelle A zusammengeführt wird, hat die spätere Schnittstelle eine höhere Priorität

Zum Beispiel das offizielle Beispiel:

Schnittstelle Cloner {
    Klon (Tier: Tier): Tier;
}

Schnittstelle Cloner {
    Klon (Tier: Schaf): Schaf;
}

Schnittstelle Cloner {
    Klon (Tier: Hund): Hund;
    Klon (Tier: Katze): Katze;
}


Schließlich werden sie wie folgt zu einer Anweisung zusammengefasst:

Schnittstelle Cloner {
    Klon (Tier: Hund): Hund;
    Klon (Tier: Katze): Katze;
    Klon (Tier: Schaf): Schaf;
    Klon (Tier: Tier): Tier;
}


Zwei Punkte sind zu beachten:

  • Die Deklarationsreihenfolge in jeder Schnittstellengruppe bleibt unverändert
  • Die Reihenfolge zwischen den Schnittstellengruppen ist so, dass die späteren Schnittstellenüberladungen an erster Stelle erscheinen

Es gibt jedoch Ausnahmen: wenn spezielle Funktionssignaturen erscheinen. Wenn ein Parameter in der Signatur einen Typ hat, der ein einzelner Zeichenfolgenliteral ist (also keine Vereinigung von Zeichenfolgenliteralen), wird er an den Anfang der Überladungsliste verschoben.

Dies ist das Ende dieses Artikels über die am häufigsten vorkommende Deklarationszusammenführung (Schnittstellenzusammenführung) in TS. Weitere Informationen zur Schnittstellenzusammenführung in TS finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

<<:  Drei Möglichkeiten, durch Klicken auf ein Button-Tag in HTML zu einer Seite zu springen

>>:  Docker stellt Mysql, .Net6, Sqlserver und andere Container bereit

Artikel empfehlen

Vue-Grundlagen MVVM, Vorlagensyntax und Datenbindung

Inhaltsverzeichnis 1. Vue-Übersicht Offizielle Vu...

JavaScript zum Filtern von Arrays

In diesem Artikelbeispiel wird der spezifische Co...

Lösung für Fehler 1290 beim Importieren von Dateidaten in MySQL

Fehlerszenario Verwenden Sie den MySQL-Befehl in ...

So verwenden Sie DQL-Befehle zum Abfragen von Daten in MySQL

In diesem Artikel zeigt Ihnen der Blogger die häu...

Vue-Kapselungskomponententool $attrs, $listeners-Verwendung

Inhaltsverzeichnis Vorwort $attrs Beispiel: $list...

So implementieren Sie eine Remote-Verbindung für Redis unter Linux

Nachdem Sie Redis unter Linux installiert haben, ...

Detaillierte Erklärung zum MySQL-Index

Inhaltsverzeichnis 1. Index-Grundlagen 1.1 Einlei...

CSS-Syntax für Tabellenränder

<br /> CSS-Syntax für Tabellenränder Zu den ...

Einige Hinweise zum Ändern des innodb_data_file_path-Parameters von MySQL

Vorwort innodb_data_file_path wird verwendet, um ...

So installieren Sie OpenJDK in Docker und führen das JAR-Paket aus

Bild herunterladen Docker-Pull OpenJDK Erstellen ...