Beispiele für die korrekte Verwendung von Schnittstellen- und Typmethoden in TypeScript

Beispiele für die korrekte Verwendung von Schnittstellen- und Typmethoden in TypeScript

Vorwort

Sowohl Schnittstelle als auch Typ werden zum Definieren von Typen verwendet, was als definierende Formen verstanden werden kann. Eine Form stellt einen Designrahmen dar, oder anders ausgedrückt eine Klasse von Dingen, solange sie bestimmte Eigenschaften oder Verhaltensweisen aufweisen. In einigen Sprachen, wie etwa Java, werden Schnittstellen verwendet, um Verhaltensweisen zu definieren. Wenn eine Klasse eine Schnittstelle implementiert, bedeutet dies, dass die Klasse ein bestimmtes Verhalten oder eine bestimmte Fähigkeit hat, wie etwa beschreibbar oder lesbar. Dinge können nach Verhalten unterteilt werden. Schnittstelle wird in Golang häufig verwendet, aber in TypeScript ähnelt Schnittstelle eher einer Typform. TypeScript bietet auch Typen zum Definieren von Typen. Tatsächlich gibt es in TypeScript keinen großen Unterschied zwischen Schnittstelle und Typ, aber dennoch einen kleinen Unterschied.

Schnittstelle

Mithilfe einer Schnittstelle kann eine Klasse, ein Objekt oder eine Funktion gestaltet werden.

Schnittstelle Tut{
    Titel:Zeichenfolge
    ist abgeschlossen:boolean
}

Definieren Sie eine Schnittstelle, um den Tut-Typ darzustellen, und definieren Sie dann eine Variable machineLearningTut vom Typ Tut

const machineLearningTut:Tut = {
    Titel: „Grundlagen des maschinellen Lernens“,
    ist abgeschlossen:true
}

Wenn das machineLearningTut vom Typ Tut die Attribute oder Methoden der Schnittstellendefinition nicht vollständig implementiert, wird während der Kompilierungsphase eine freundliche Eingabeaufforderung angezeigt.

const machineLearningTut:Tut = {
    Titel: „Grundlagen des maschinellen Lernens“,
}

Tipp: Das machineLearningTut vom Typ Tut implementiert die in der Schnittstelle deklarierte Eigenschaft isComplete nicht.

Die Eigenschaft „isComplete“ fehlt im Typ „{ title: string; }“, ist aber im Typ „Tut“ erforderlich.ts(2741)

[demo2.ts(3, 5): ]()'isComplete' wird hier deklariert.
Klasse VideoTut implementiert Tut{
    Titel: Zeichenfolge;
    ist abgeschlossen:boolean;
}

Sie können auch eine Klasse VideoTut definieren, um die Tut-Schnittstelle zu implementieren

Schnittstelle Begrüßung{
    (Name:Zeichenfolge):Zeichenfolge
}

const greet:Greet = (name) => `hallo ${name}`

Sie können auch die Greet-Schnittstelle für die Shape-Funktion definieren und dabei die Parameter der Funktion und den Rückgabewerttyp der Funktion festlegen.

Schnittstelle AdvanceTut erweitert Tut{
    istFrei:boolean
}

const machineLearningTut:AdvanceTut = {
    Titel: „Grundlagen des maschinellen Lernens“,
    ist abgeschlossen:wahr,
    istFrei:true
}

Schnittstellen können durch „extend“ erweitert werden. AdvanceTut ist eine Erweiterung von Tut. Wenn ein Typ „extend“ nicht unterstützt, kann er zwischen Typen erweitert werden.

Schnittstelle Tut{
    Titel:Zeichenfolge
    ist abgeschlossen:boolean
}

Schnittstelle Tut{
    istFrei:boolean
}

const machineLearningTut:Tut = {
    Titel: „Grundlagen des maschinellen Lernens“,
    ist abgeschlossen:wahr,
    istFrei:true
}

Zwei Tuts mit demselben Schnittstellennamen werden nacheinander deklariert. Es wird gezeigt, dass diese beiden Tuts in einer erweiterten Beziehung stehen, nicht in einer übergeordneten Beziehung, was ebenfalls eine Funktion ist, die dieser Typ nicht hat.

Typ

Tatsächlich ähnelt die Verwendung von „Typ“ der von „Schnittstelle“, aber „Typ“ ist praktisch für Typen und kann ein Alias ​​für grundlegende JavaScript-Typen sein. Tatsächlich unterscheidet sich der Typ wesentlich von der Schnittstelle. Auch wenn dies erklärt wird, müssen Sie es möglicherweise dennoch langsam in der Praxis erleben.

Typ ist vollständig = Boolesch
Typ Titel = Zeichenfolge
Typ Begrüßung = (Name:Zeichenfolge)=>Zeichenfolge

Typ Tut = {
    Titel: Zeichenfolge;
    ist abgeschlossen:boolean
}

const machineLearningTut:Tut = {
    Titel: „Titel des maschinellen Lernens“,
    ist abgeschlossen:true
}

Typ Tut = {
    Titel: Zeichenfolge;
    ist abgeschlossen:boolean
} & {
    istFrei:boolean
}

const machineLearningTut:Tut = {
    Titel: „Titel des maschinellen Lernens“,
    ist abgeschlossen:wahr,
    istFrei:true
}

Typ kann die Erweiterung des Typs implementieren

Typ VideoTut = Tut | {
    istFrei:boolean
}

const machineLearningTut:VideoTut = {
    Titel: „Titel des maschinellen Lernens“,
    ist abgeschlossen:wahr,
    istFrei:true
}
Exporttyp InputProps = {
    Typ: „Text“|„E-Mail“;
    Wert: Zeichenfolge;
    beiÄnderung:(neuerWert:Zeichenfolge)=>void
}

Darüber hinaus können die Front-End- und Back-End-Typen auch mithilfe von Typen definiert werden. Wie unten gezeigt, können mehrere Basistypen definiert werden, und diese definierten Typen können neue Typen definieren.

Typ bei Änderungstyp = (neuerWert:Zeichenfolge)=>void

Typ InputType = „Text“|„E-Mail“;

Typ Eingabewert = Zeichenfolge

Exporttyp InputProps = {
    Typ:Eingabetyp;
    Wert:Eingabewert;
    bei Kanal: bei Kanaltyp
}

Anhang: Unterschiede zwischen Schnittstelle und Typ

Typ kann grundlegende Typaliase, Union-Typen, Tupel usw. deklarieren.

// Basistyp Aliastyp Name = Zeichenfolge;

//Union-Typ-Schnittstelle Dog {
    wong()
}
Schnittstelle Cat {
    miao();
}

Typ Haustier = Hund | Katze;

//Definieren Sie den Typ jeder Position im Array-Typ speziell. PetList = [Dog, Pet];

In der Typanweisung können Sie auch typeof verwenden, um den Typ der Instanz für die Zuweisung abzurufen.

// Wenn Sie den Typ einer Variablen ermitteln möchten, verwenden Sie typeof
let div = document.createElement('div');
Typ B = Typ von Div;

TypAndere Tricks

Typ StringOrNumber = Zeichenfolge | Zahl;
Typ Text = Zeichenfolge | { Text: Zeichenfolge };
Typ NameLookup = Wörterbuch<Zeichenfolge, Person>;
Typ Callback<T> = (Daten: T) => void;
Typ Paar<T> = [T, T];
Typ Koordinaten = Paar<Zahl>;
Typ Tree<T> = T | { links: Tree<T>, rechts: Tree<T> };

Schnittstelle kann Zusammenführung deklarieren

Schnittstelle Benutzer {
    Name: Zeichenfolge;
    Alter: Anzahl;
}

Schnittstelle Benutzer {
    Geschlecht: Zeichenfolge;
}

Die Benutzeroberfläche ist:

{
    Name: Zeichenfolge;
    Alter: Anzahl;
    Geschlecht: Zeichenfolge;
}


Zusammenfassen

Dies ist das Ende dieses Artikels über die korrekte Verwendung von Schnittstelle und Typ in TypeScript. Weitere Inhalte zur Verwendung von Schnittstelle und Typ in TypeScript finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Was ist der Unterschied zwischen Schnittstelle und Typ in Typescript?
  • Fallbeispiel zur TypeScript-Schnittstellendefinition
  • Was ist der Unterschied zwischen Typ und Schnittstelle in TypeScript?

<<:  mysql ist keine interne Befehlsfehlerlösung

>>:  Schritte zur Installation von Pyenv unter Deepin

Artikel empfehlen

Analyse des Prinzips von Vue nextTick

Inhaltsverzeichnis Ereignisschleife miscroTask (M...

JavaScript, um einen Lotterieeffekt zu erzielen

In diesem Artikel wird der spezifische JavaScript...

Beispielcode mit SCSS in Uni-App

Aufgetroffene Fallstricke Ich habe den ganzen Nac...

Beispiel für eine MySQL-Datenbank-übergreifende Transaktions-XA-Operation

In diesem Artikel wird die MySQL-Datenbank-übergr...

Implementieren von Rechnerfunktionen mit dem WeChat-Applet

Dieser Artikel ist ein einfacher Rechner, der mit...

Detaillierte Erklärung zur Verwendung des Grep-Befehls in Linux

Linux-Grep-Befehl Mit dem Linux-Befehl grep könne...

Vue realisiert den Prozentbalkeneffekt

In diesem Artikel wird der spezifische Code von V...

Vue-Implementierungsbeispiel mit Google Recaptcha-Verifizierung

In unserem aktuellen Projekt müssen wir die Googl...

Detaillierte Erklärung zu React Hooks

Inhaltsverzeichnis Was sind Hooks? Klassenkompone...