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
In diesem Artikel erfahren Sie, wie Sie MySQL 8.0...
1 Erstellen Sie einen Benutzer und geben Sie den ...
Inhaltsverzeichnis Problembeschreibung: Ursachena...
Ich schreibe gerade ein kleines Programm. Da die ...
Bei täglichen Entwicklungsaufgaben verwenden wir ...
Während dieser Zeit stieß ich bei der Arbeit an e...
Vorwort In diesem Artikel wird der Vorgang zum He...
In diesem Artikel wird die Click-to-Switch-Bildko...
Zu den neuen Funktionen in MySQL 8.0 gehören: Vol...
In HTML müssen Sie die von der Webseite verwendet...
In SQL wird GROUP BY verwendet, um Daten in den E...
MySQL ist eine von mehreren Benutzern verwaltete ...
In diesem Artikelbeispiel wird der spezifische JS...
1. Fenster -> Einstellungen, um das Eclipse-Ei...
Nachfragehintergrund Als statistische Schnittstel...