Typannotationen
Bisher hat TypeScript jeden Typ aus dem ersten Wert abgeleitet. Du kannst den Typ auch selbst schreiben: Schreibe hinter den Namen der Variablen einen Doppelpunkt und den Typ:
let heldenName: string = "Kira";
let gold: number = 120;
let hatKarte: boolean = false;Der Teil : string ist eine Typannotation. Sie sagt, was die Variable enthalten darf: heldenName nur Texte, gold nur Zahlen und hatKarte nur true oder false. Die erste Zeile kannst du so lesen: „heldenName enthält einen String, und sein erster Wert ist "Kira"“. Annotationen funktionieren mit const genauso: const maxStufe: number = 10;.
Mit einer Annotation prüft TypeScript auch den ersten Wert, nicht nur die späteren. Passt der Wert nicht zum Typ, meldet es einen Fehler genau in der Zeile, die die Variable anlegt:
let gold: number = "120";main.ts(1,5): error TS2322: Type 'string' is not assignable to type 'number'.Spalte 5 zeigt auf den Namen der Variablen. "120" in Anführungszeichen ist ein Text, aber die Annotation sagt, dass gold Zahlen enthält. Ohne die Annotation würde TypeScript string ableiten und hier nichts melden. Der Fehler würde sich später zeigen, in einer Zeile, die mit gold rechnet, oder vielleicht nie.
Annotationen gibt es nur für die Prüfung. Wie du in der vorigen Lektion gesehen hast, entfernt der Compiler sie, und das JavaScript, das läuft, ist einfach let gold = 120;.
Typische Fehler:
- Ein Gleichheitszeichen statt eines Doppelpunkts:
let titel = string;versucht,stringals Wert in der Variablen zu speichern, aber es ist ein Typ, kein Wert:error TS2693: 'string' only refers to a type, but is being used as a value here. - Ein Typ, den es nicht gibt:
let stufe: int = 3;endet miterror TS2304: Cannot find name 'int'.Manche Sprachen haben einen eigenen Typ für Ganzzahlen, aber TypeScript hat einen Typ für alle Zahlen:number. - Ein Großbuchstabe: Mit großem Anfangsbuchstaben bedeuten
String,NumberundBooleanin TypeScript etwas anderes, nämlich die Typen spezieller Objekte, die du praktisch nie brauchst. TypeScript meldet sie nicht als Fehler, achte also selbst darauf: Die Basistypen werden kleingeschrieben.
So schreibst du es:
Anweisungen
- 1
Füge den drei Variablen im Editor Typannotationen hinzu:
heldenNameist einstring,stufeeinenumberundhatKarteeinboolean. - 2
Lege darunter eine Variable
goldmit der Annotationnumberund dem Wert120an. - 3
Kira findet in einer Truhe eine Karte. Setze unter den Variablen
hatKarteauftrueund ändere dasconsole.logam Ende so, dass das Programm ausgibt:Kira, Stufe 3, Gold 120, Karte: true