Vorwort: Eines der Kernprinzipien von TS besteht darin, die vorhandenen Strukturen auf ihren Typ zu überprüfen. Der Zweck einer Schnittstelle besteht darin, diese Typen zu benennen und einen Vertrag für Ihren Code oder Drittanbietercode zu definieren. Der Code, der schließlich in 1. Schnittstellendefinition Die Rolle der Schnittstelle ähnelt der Typ str = Zeichenfolge Diese Schreibmethode kann nicht in Schnittstellen angewendet werden, in denen nur Funktionstypen, Klassentypen und Array-Typen geschrieben werden können. Der Beispielcode lautet wie folgt: //Definiere eine einfache Schnittstelle interface Person { Name: Zeichenfolge } //Definieren Sie die Get-Methode function getPersonName(person: Person): void { Konsole.log(Person.Name) } //Definieren Sie die Set-Methode function setPersonName(person: Person, name: string): void { person.name = Name } // Definiere ein Personenobjekt let person = { Name: 'Eine Schüssel Haferbrei', } setPersonName(Person, 'Yiwan Zhou') // Änderung erfolgreich getPersonName(person) // Yiwan Zhou Die Es ist anzumerken, dass bei der Typprüfung nicht die Reihenfolge der Eigenschaften geprüft wird, sondern nur verlangt wird, dass die entsprechenden Eigenschaften vorhanden sind und vom gleichen Typ sind. 2. Attribute 2.1 Optionale AttributeWenn eine Eigenschaft in einer Schnittstelle optional ist oder nur unter bestimmten Bedingungen existiert, können Sie neben dem Eigenschaftsnamen ein ?-Zeichen hinzufügen. Der Beispielcode lautet wie folgt: ;(Funktion () { //Definiere eine einfache Schnittstelle interface Person { Name: Zeichenfolge // Gibt an, dass das Alter optional ist Alter?: Zahl } // Definiere ein Personenobjekt let person = { Name: 'Eine Schale Zhou', Alter: 18, Hobby: 'Programmieren', } //Definieren Sie die Get-Methode function getPersonName(person: Person): void { // console.log(Person.Alter, Person.Hobby) // Eigenschaft „Hobby“ existiert beim Typ „Person“ nicht. } })() Zu diesem Zeitpunkt können wir das 2.2 Schreibgeschützte Eigenschaften Wenn Sie eine Eigenschaft schreibgeschützt machen möchten, fügen Sie vor der Eigenschaft einfach Der Beispielcode lautet wie folgt: ;(Funktion () { Schnittstelle Person { // Namen auf schreibgeschützt setzen schreibgeschützter Name: Zeichenfolge } // Definiere ein Personenobjekt let person = { Name: 'Eine Schale Zhou', } //Definieren Sie die Set-Methode function setPersonName(person: Person, name: string): void { person.name = Name // Kann „Name“ nicht zugewiesen werden, da es sich um eine schreibgeschützte Eigenschaft handelt. } setPersonName(Person, 'eine Schüssel Haferbrei') })() 3. Klassentyp 3.1 VererbungsschnittstelleWie Klassen können Schnittstellen voneinander erben. Dadurch können wir Mitglieder von einer Schnittstelle in eine andere kopieren, was uns mehr Flexibilität beim Aufteilen von Schnittstellen in wiederverwendbare Module gibt. Die Schnittstellenvererbung erfolgt über das Schlüsselwort extends. Der Beispielcode lautet wie folgt: // Definiere zwei Schnittstellen Schnittstelle PersonName { Name: Zeichenfolge } Schnittstelle PersonAge { Alter: Anzahl } // Definieren Sie eine Person-Schnittstelle, die von den beiden oben genannten Schnittstellen erbt. Es werden mehrere Schnittstellen verwendet, getrennt durch Kommas. Schnittstelle Person erweitert PersonName, PersonAge { Hobby: Schnur //Definiere eine Methode, deren Rückgabewert ein String ist say(): Zeichenfolge } lass Person = { Name: 'Eine Schale Zhou', Alter: 18, Hobby: 'Programmieren', // Beispielmethode say() { Rückkehr 'Eine Schale Zhou' }, } //Definieren Sie die Get-Methode function getPersonName(person: Person): void { console.log(Person.Name, Person.Alter, Person.Hobby) } getPersonName(Person) // Yiwan Zhou 18 Kodierung Wird beim Erben mehrerer Schnittstellen verwendet, getrennt durch Kommas. 4. FunktionstypIn TS können Schnittstellen auch Schnittstellen von Funktionstypen beschreiben. Die Definition einer Funktionstypschnittstelle ähnelt einer Funktionsdefinition mit nur einer Parameterliste und einem Rückgabewerttyp. Jeder Parameter in der Parameterliste erfordert einen Namen und einen Typ. Der Beispielcode lautet wie folgt: Schnittstelle MyAdd { (x: Zahl, y: Zahl): Zahl } Nachdem die Definition abgeschlossen ist, können wir diese Funktionsschnittstelle wie eine normale Schnittstelle verwenden. Der Beispielcode lautet wie folgt: let myAdd: MyAdd = (x: Zahl, y: Zahl): Zahl => { Rückgabewert x + y } Der obige Code entspricht der folgenden Funktionsdefinition: let myAdd: (x: Zahl, y: Zahl) => Zahl = ( x: Zahl, y: Zahl ): Zahl => { Rückgabewert x + y } Dies ist das Ende dieses Artikels über Das könnte Sie auch interessieren:
|
<<: Eine kurze Diskussion über den Spaß von :focus-within in CSS
>>: Einige Tipps zum Schreiben leistungsstarker HTML-Anwendungen
1. Verwenden Sie Pseudoklassen, um die Hälfte des...
mysql ruft alle Daten oder Monate in einem Zeitra...
MySQL ist eine relativ einfach zu verwendende rel...
Meine MySQL-Version ist MySQL V5.7.9, bitte verwe...
【Einführung】: Handtrack.js ist eine Prototypbibli...
Tutorial-Reihe MySQL-Reihe: Grundlegende Konzepte...
Die Verwendung von CI zum Erstellen von Docker-Im...
Beim Schreiben von Animationen mit JS wird häufig...
Inhaltsverzeichnis MYSQL METADATA LOCK (MDL LOCK)...
1. Einleitung Kürzlich habe ich festgestellt, das...
Inhaltsverzeichnis Vorwort 1. Etikettenstil defin...
Inhaltsverzeichnis 1. Beispiel für die Anzeige de...
Um die Tabelle zu verschönern, können Sie für die...
Vorwort Meta ist ein Hilfstag im Kopfbereich der ...
Hintergrund CVE-2021-21972 Eine nicht authentifiz...