Читать книгу Angular - Manfred Steyer - Страница 23
Variablen deklarieren
ОглавлениеZum Deklarieren von Variablen bietet sich in TypeScript das mit ECMAScript 2015 eingeführte Schlüsselwort let an. Den gewünschten Datentyp geben Sie hinter dem Variablennamen an, und auf Wunsch kann auch ein initialer Wert zugewiesen werden:
let message: string = 'Hallo Welt!';
Der TypeScript-Compiler verhindert, dass ein Wert eines anderen Datentyps dieser Variablen zugewiesen wird:
// message = 42; // FEHLER
Standardmäßig erzeugt der TypeScript-Compiler selbst beim Auftreten von Kompilierungsfehlern JavaScript-Code. In manchen Fällen ist dieser sogar lauffähig. Selbstredend sollten sämtliche Kompilierungsfehler trotzdem behoben werden. |
Ein explizites Angeben von Typen ist jedoch vielerorts gar nicht notwendig, zumal TypeScript den Typ durch Schlussfolgerungen herzuleiten versucht. Hierbei ist auch von Typherleitung oder Typinferenz die Rede. Im betrachteten Fall erkennt TypeScript beispielsweise durch den zugewiesenen Initialwert, dass es sich um einen String handelt:
let message2 = 'Hallo Welt!';
Einige Entwicklungsumgebungen geben sogar Warnungen aus, wenn Sie unnötigerweise den Typ einer Variablen angeben. Damit möchte man die Schreibweise in der Community vereinheitlichen und Code leichter lesbar gestalten.
Um dies zu verhindern, können Variablen explizit mit any typisiert werden. Dieser Datentyp ahmt das übliche Verhalten von JavaScript nach und erlaubt das Zuweisen aller möglichen Werte:
let message3: any = 'Hallo Welt!';
message3 = 42; // OK
Wie die meisten anderen Sprachen erlaubt auch TypeScript die Deklaration von Konstanten, deren Werte sich im Nachhinein nicht verändern lassen. Hierzu kommt das Schlüsselwort const zum Einsatz, das ebenfalls mit ECMAScript 2015 eingeführt wurde:
const message4 = 'Hallo Welt!';
// message4 = 'Guten Tag'; // FEHLER
Es gehört in der Welt von TypeScript mittlerweile zum guten Ton, so viele Variablen wie möglich mit const zu deklarieren. Bei Änderungen müssten somit neue Konstanten erzeugt werden:
const message5 = 'Hallo';
const message6 = message5 + ' Welt';
Die Idee dahinter ist, dass die Nutzung von Konstanten zu besser lesbarem Code führt, unter anderem weil wir beim Ändern von Werten gezwungen sind, neue Konstantennamen zu vergeben.
Als Alternative zum Schlüsselwort let unterstützt TypeScript auch das von JavaScript bekannte Schlüsselwort var. Auf den ersten Blick führen beide Varianten zum selben Ergebnis. Allerdings gelten mit var deklarierte Variablen aus historischen Gründen immer ab dem Beginn der aktuellen Funktion – egal wo sie deklariert werden. Mit let deklarierte Variablen entsprechen hingegen stärker dem Prinzip der geringsten Überraschung, zumal sie ab der Deklaration und nur für den aktuellen Block gelten: | |
function demo(a: number, b: number): number { // y existiert ab hier if (a > b) { let x = -1; // x existiert ab hier und nur in diesem Block. return x; } else { vary =1; return y; } } |