Statische TS-Typen können künstlich in zwei Kategorien unterteilt werden: Grundlegende Typen: wie Objekttypen: wie Arrays, Funktionen, Objekte, Aufzählungen, Tupel. 1. GrundtypenDie Typdefinition von TS wird im Wesentlichen folgendermaßen definiert, wie im Beispielcode gezeigt: ;(Funktion () { /* * In TS können Sie Datentypen (Typanmerkungen) definieren, indem Sie den Variablennamen let verwenden: Datentyp = Variablenwert. * Sie können den Datentyp bei der Definition auch nicht angeben, TS leitet den Datentyp selbst ab*/ // Boolescher Typ let boo: boolean = false // Das Zuweisen eines nicht-Booleschen Wertes löst eine Exception aus // Zahlentyp let num: number = 100 // string let str: string = 'string' // Verwenden Sie einfache oder doppelte Anführungszeichen zur Positionierung str = `template string` // Verwenden Sie die String-Definition der Vorlage // Any type -> gibt an, dass der Typ ein dynamischer Typ sein kann, wodurch die Typprüfung zur Kompilierungszeit entfällt let AnyType: any = 123 AnyType = true // Doppelte Zuweisung löst keine Ausnahme aus // Void-Typ -> Wird normalerweise für Funktionstypen ohne Rückgabewerte verwendet function demo(): void { console.log('Test des Void-Typs') } Demo() // Es gibt zwei spezielle Typen, null und undefined // Diese beiden Typen sind Untertypen aller Typen, was bedeutet, dass diese beiden Typen Typen wie Zahlen und Zeichenfolgen zugewiesen werden können. let u: undefined = undefined num = u // Weise den Wert der Variablen vom Typ Zahl undefined zu lass n: null = null boo = n // Weise einer booleschen Variable den Wert null zu })() Der Grundtyp ist relativ einfach und ähnelt insbesondere Es gibt in TS auch einen Typ Beispiel: Der Typ 2. Objekttyp 2.1 FelderArrays in TS unterscheiden sich von Arrays in JS. Durch die Verwendung von Arrays in TS können Sie nicht nur eine Variable als Array definieren, sondern auch den Typ im Array lokalisieren. Der Beispielcode lautet wie folgt: ;(Funktion () { //Definiere einen Array-Typ, der nur Zahlen enthält let arr1: number[] = [1, 2, 3] console.log(arr1) // Definiere ein Array, das Zahlen, Zeichenfolgen und Boolesche Werte enthalten kann. let arr2: (Zahl | Zeichenfolge | Boolescher Wert)[] = ['1', '2', true] console.log(arr2) //Definiere ein Array beliebigen Typs let arr3 = [1, ['1', '2', true], true] console.log(arr3) // Definieren Sie ein Array vom Objekttyp. Das Objekt muss zwei Eigenschaften haben: Name und Alter. const objectArray: { name: string; age: number }[] = [ { Name: 'Yiwan Zhou', Alter: 18 }, ] // Oder deklarieren Sie es über den Typalias // Definieren Sie einen Typalias über den Typ type User = { name: string; age: number } const objectArr: Benutzer[] = [{ Name: 'Benutzer', Alter: 18 }] })() 2.2 TupelDer Tupeltyp ermöglicht die Darstellung eines Arrays mit einer bekannten Anzahl und einem bekannten Typ von Elementen, wobei die Elemente nicht vom gleichen Typ sein müssen. Der Beispielcode lautet wie folgt: ;(Funktion () { // Definiere ein Tupel, dessen Werte jeweils Zeichenfolge und Zahl sind. Let Tuple: [Zeichenfolge, Zahl] = ['123', 123] konsole.log(Tupel) // [ '123', 123 ] // Weisen Sie Tupel [0] = 'Zeichenfolge' nach Index zu console.log(Tupel) // [ 'Zeichenfolge', 123 ] // Andere Typen zuweisen // tuple[0] = true // console.log(Tupel) // wirft eine Ausnahme })() Die Hauptfunktion eines Tupels besteht darin, jedes Element in einem Array und die Länge des Arrays einzuschränken. Tupel und Arrays können verschachtelt werden. Die Syntaxstruktur ist wie folgt: // Verschachtelte Tupel und Arrays let tuples: [string, number][] = [ ['123', 123], ['456', 456], ] Im obigen Code stellt [ 2.3 ObjekteEin Objekt kann alle oben genannten Typen enthalten. Der Beispielcode lautet wie folgt: ;(Funktion () { // Definieren Sie ein Objekt mit zwei Eigenschaften: MyName und age, wobei MyName vom Typ String und age vom Typ Zahl ist. let obj: { MeinName: Zeichenfolge Alter: Anzahl } // Objektzuweisung. Wenn die Zuweisung nicht gemäß dem oben angegebenen Typ durchgeführt wird, wird eine Exception ausgelöst. obj = { MeinName: 'Yiwan Zhou', Alter: 18, } console.log(obj) // { MeinName: '一碗周', Alter: 18 } })() In TS müssen wir Typen nicht an jeder Stelle kommentieren, da uns die Typinferenz dabei helfen kann, ihre Funktionalität zu erhalten, ohne zusätzlichen Code zu schreiben. Wenn Sie Ihren Code jedoch lesbarer gestalten möchten, können Sie den jeweiligen Typ angeben. 3. TypinferenzManchmal müssen Sie in TypeScript den Typ nicht explizit angeben. Der Compiler leitet den entsprechenden Typ automatisch ab, wie im folgenden Code: ;(Funktion () { let myName = 'Eine Schüssel Zhou' myName = true // Fehler: Typ „boolean“ kann nicht dem Typ „string“ zugewiesen werden })() Als wir die Variable Dies ist die einfachste Typinferenz in 3.1 Typinferenz in TypvereinigungenWeitere Informationen zu Typvereinigungen finden Sie unter: Vereinigungstypen, Schnittmengentypen und Typschutz Wenn eine Variable mehrere Wertetypen haben kann, führt Der Beispielcode lautet wie folgt: let arr = [1, '2'] // Definiere ein Array, das Zeichenfolgen und Zahlen enthält // Weise dem oben definierten Array Werte neu zu // arr = [true, false] // Fehler: Typ 'boolean' kann dem Typ 'string | number' nicht zugewiesen werden // Es gibt auch das folgende Beispiel let val = arr.length === 0 ? 0 : 'Die Array-Länge ist ungleich 0' // val = false // Fehler: Typ „boolean“ kann nicht dem Typ „string | number“ zugewiesen werden. 3.2 KontexttypenDie zuvor vorgestellten Beispiele können alle auf den Typ auf der linken Seite von = basierend auf dem Wert auf der rechten Seite von = schließen. Der Kontexttyp, den wir jetzt einführen werden, unterscheidet sich von der vorherigen Typinferenz. Der Compiler leitet den Typ der Variablen basierend auf dem Kontext ab, in dem sich die Variable derzeit befindet. Der Beispielcode lautet wie folgt: ;(Funktion () { // Definieren Sie eine Schnittstelle Schnittstelle Person { Name: Zeichenfolge Alter: Anzahl } // Definieren Sie ein Array über die oben definierte Schnittstelle let arr: Person[] = [{ name: '一碗周', age: 18 }] // Durchlaufe das definierte Array arr.forEach(item => { // Basierend auf der aktuellen Umgebung folgert der Compiler automatisch, dass das Element vom Typ „Hobby“ ist und nicht das Hobby-Attribut besitzt console.log(item.hobby) // Das Attribut „Hobby“ existiert beim Typ „Person“ nicht }) })() Im obigen Code definieren wir zuerst eine Wenn wir den Parametern des Funktionsausdrucks Typanmerkungen hinzufügen, wird der Kontexttyp ignoriert und es wird kein Fehler gemeldet. Der Beispielcode lautet wie folgt: // Wenn im Kontext Typinformationen angegeben sind, wird der Kontext ignoriert. arr.forEach((Artikel: beliebig) => { // Basierend auf der aktuellen Umgebung folgert der Compiler automatisch, dass das Element vom Typ „Hobby“ ist und nicht das Hobby-Attribut besitzt console.log(item.hobby) // Das Attribut „Hobby“ existiert beim Typ „Person“ nicht }) 4. TypbehauptungenMit der sogenannten Typbehauptung teilen Sie TS mit, dass der Datentyp dieses Werts ein bestimmter Typ ist und Sie dies nicht überprüfen müssen. Dies hat keine Auswirkungen auf die Laufzeit, sondern nur auf die Kompilierungszeit. Der Beispielcode lautet wie folgt: let SomeValue: any = "Dies ist eine Zeichenfolge" // Syntax 1 let StrLength1: Zahl = (<string>SomeValue).length // Syntax 2 als Syntax let StrLength2: Zahl = (SomeValue als Zeichenfolge).Länge
Dies ist das Ende dieses Artikels über TypeScript-Basistypen. Weitere Informationen zu TypeScript-Basistypen 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:
|
<<: MySQL ändert die Standard-Engine und Zeichensatzdetails
>>: jQuery manipuliert Cookies
Ich habe viele Tutorials gelesen, aber festgestel...
Meta ist ein Hilfstag im Kopfbereich der HTML-Spra...
Inhaltsverzeichnis 1. ACID-Eigenschaften Syntax d...
1. Hintergrund, der durch CSS übergeben werden mu...
1. Unlink-Funktion Bei Hardlinks wird mit „unlink...
Jede Website stößt normalerweise auf viele Crawle...
In diesem Artikelbeispiel wird der spezifische Co...
Angenommen, es gibt zwei Linux-Server A und B, un...
Dieser Befehl ändert die Datentabelle ff_vod und ...
Um das Kursdesign zu realisieren, habe ich kürzli...
In diesem Artikelbeispiel wird der spezifische Co...
Zweck: Ermöglichen Sie die gleichzeitige lokale S...
Die Installation der MySQL-Software und die Daten...
Die Titelbilder in den Spalten von Zhihu Discover...
Unicode ist ein von einer internationalen Organis...