Erläuterung der Zusammenführung von TypeScript-Namespaces

Erläuterung der Zusammenführung von TypeScript-Namespaces

Vorwort:
Wenn wir den Inhalt des vorherigen Abschnitts noch einmal durchgehen, haben wir im vorherigen Abschnitt die häufigste Deklarationszusammenführung in TS vorgestellt: die Schnittstellenzusammenführung

Wir verstehen, dass das Zusammenführen von Deklarationen tatsächlich bedeutet, dass der Compiler Deklarationen mit demselben Namen zu einer Deklaration zusammenführt. Das Ergebnis der Zusammenführung ist, dass die zusammengeführte Deklaration gleichzeitig die Merkmale der ursprünglichen zwei oder mehr Deklarationen aufweist.

Für die Schnittstellenzusammenführung ist erforderlich, dass die darin enthaltenen Mitglieder Funktionsmitglieder haben. Für die Funktionsmitglieder darin wird jede Funktionsdeklaration mit demselben Namen als Überladung dieser Funktion behandelt. Wenn Schnittstelle A mit der späteren Schnittstelle A zusammengeführt wird, hat die spätere Schnittstelle eine höhere Priorität.

Auch heute sprechen wir über das Zusammenführen von Deklarationen in TS, diesmal jedoch über das Zusammenführen von Namespaces

Es gibt zwei Hauptaspekte: Einer ist das Zusammenführen von Namespaces mit demselben Namen und der andere ist das Zusammenführen von Namespaces mit anderen Typen. Im Folgenden wird nacheinander beschrieben

Namespaces mit gleichem Namen zusammenführen

Ähnlich wie beim Zusammenführen von Schnittstellen werden auch die Mitglieder von zwei oder mehr Namespaces mit demselben Namen zusammengeführt.

Wie können wir es also konkret zusammenführen?

Beachten Sie beim Zusammenführen von Namespaces mit demselben Namen die folgenden vier Punkte:

  • Die vom Modul exportierten Schnittstellen mit gleichem Namen werden zu einer Schnittstelle zusammengeführt.
  • Nicht exportierte Mitglieder sind nur innerhalb ihres ursprünglichen Namespaces (vor der Zusammenführung) sichtbar. Das bedeutet, dass aus anderen Namespaces zusammengeführte Mitglieder nach der Zusammenführung nicht auf nicht exportierte Mitglieder zugreifen können.
  • Beim Zusammenführen von Werten gilt: Wenn die Namen der Werte gleich sind, hat der Wert im späteren Namespace eine höhere Priorität.
  • Für Mitglieder ohne Konflikte werden sie direkt eingemischt

Zum Beispiel:

Namespace Tiere {
    Exportklasse Katze { }
}

Namespace Tiere {
    Exportschnittstelle Legged { AnzahlBeine: Anzahl; }
    export Klasse Hund { }
}


ist gleichbedeutend mit:

Namespace Tiere {
    Exportschnittstelle Legged { AnzahlBeine: Anzahl; }

    Exportklasse Katze { }
    export Klasse Hund { }
}


Im obigen Beispiel werden zwei Namespaces mit demselben Namen, Animals , schließlich zu einem Namespace zusammengeführt. Das Ergebnis ist, dass drei nicht miteinander in Konflikt stehende Dinge direkt miteinander vermischt werden.

Namespaces und andere Arten der Zusammenführung

Namespaces können mit anderen Deklarationstypen kombiniert werden, etwa mit Klassen und Funktionen sowie mit Aufzählungstypen.

Zusammenführen von Namespaces und Klassen mit demselben Namen

Zum Beispiel:

Klasse Album {
    Bezeichnung: Album.AlbumLabel;
}
Namespace-Album {
    export class AlbumLabel { } // Exportiere die Klasse „AlbumLabel“, damit die fusionierte Klasse darauf zugreifen kann }


Durch die Zusammenführung eines Namespaces und einer Klasse entsteht eine Klasse mit einer inneren Klasse

Zusammenführen von Namespaces und Funktionen mit demselben Namen

Zusätzlich zum oben beschriebenen inneren Klassenmuster ist es in JavaScript auch üblich, eine Funktion zu erstellen und sie später zu erweitern, um einige Eigenschaften hinzuzufügen. Um dies zu erreichen und die Typsicherheit zu gewährleisten, verwendet TypeScript die Deklarationszusammenführung.

Zum Beispiel ein offizielles Beispiel:

Funktion BuildLabel (Name: Zeichenfolge): Zeichenfolge {
    gibt BuildLabel.Präfix + Name + BuildLabel.Suffix zurück;
}

Namespace BuildLabel {
    exportiere let Suffix = "";
    export let Präfix = "Hallo, ";
}

console.log(buildLabel("Sam Smith"));


Namespace und Aufzählung mit gleichem Namen

Es kann verwendet werden, um Aufzählungen zu erweitern. Schauen wir uns die offiziellen Beispiele an.

Aufzählung Farbe {
    rot = 1,
    grün = 2,
    blau = 4
}

Namespace Farbe {
    Exportfunktion MixColor (Farbname: Zeichenfolge) {
        wenn (Farbname == "gelb") {
            gibt Farbe.rot + Farbe.grün zurück;
        }
        sonst wenn (Farbname == "weiß") {
            gibt Farbe.rot + Farbe.grün + Farbe.blau zurück;
        }
        sonst wenn (Farbname == "magenta") {
            gibt Farbe.rot + Farbe.blau zurück;
        }
        sonst wenn (Farbname == "Cyan") {
            gibt Farbe.grün + Farbe.blau zurück;
        }
    }
}

Beachten:
Nicht alles kann zusammengeführt werden. Beachten Sie, dass Klassen nicht mit anderen Klassen oder Variablen zusammengeführt werden können.

Dies ist das Ende dieses Artikels über das Zusammenführen von TS-Namespaces. Weitere Informationen zum Zusammenführen von TS-Namespaces 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!

Das könnte Sie auch interessieren:
  • Erläuterung des TypeScript-Namespace
  • Eine kurze Analyse des TypeScript-Namespace

<<:  Detaillierte Erklärung zur Verwendung von Bild-Tags in HTML

>>:  Tutorial zum Erstellen einer persönlichen NextCloud-Netzwerkfestplatte mit Docker

Artikel empfehlen

Implementierung des Wasserfall-Layouts im Uni-App-Projekt

GitHub-Adresse, Sie können es mit einem Stern mar...

Detaillierte Erklärung zur Verwendung von Element-Plus in Vue3

Inhaltsverzeichnis 1. Installation 2. Importieren...

6 ungewöhnliche HTML-Tags

Zuerst: <abbr> oder <acronym> Diese be...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.12

Das Download- und Installationstutorial für MySQL...

JavaScript implementiert den Farbänderungseffekt durch Klicken mit neun Rastern

In diesem Artikel wird der spezifische JavaScript...

JS implementiert einfache Addition und Subtraktion von Warenkorbeffekten

In diesem Artikelbeispiel wird der spezifische JS...

Detaillierte Einführung in die Mysql-Datumsabfrage

Abfrage des aktuellen Datums AKTUELLES DATUM AUSW...

Detaillierte Erklärung zur Verwendung von MySQL mysqldump

1. Einführung in mysqldump mysqldump ist ein logi...

Wissen Sie, wie Sie mit Vue Screenshots von Webseiten erstellen?

Inhaltsverzeichnis 1. Installieren Sie html2Canva...

Was sind die Dateiattribute von crw, brw, lrw usw. in Linux?

Was ist eine Datei? Eigentlich sind alle Dateien ...

So überprüfen Sie die Festplattennutzung unter Linux

1. Verwenden Sie den Befehl df, um die gesamte Fe...