Grundlegende Typen in TypeScript
Grundlegende Typen
~16 Min. Lesezeit Zuletzt aktualisiert am 8. August 2026
Jetzt geht es an die eigentlichen Bausteine: die grundlegenden Typen, die TypeScript mitbringt. Wir beginnen, echte Daten unserer Bibliothek zu modellieren – die ersten Bücher.
Die primitiven Typen
let titel: string = 'Der Herr der Ringe';
let seitenzahl: number = 1216;
let istVerfuegbar: boolean = true;
let bewertung: number = 4.5; // TypeScript kennt KEINEN separaten "float"-Typ - alles number
let notiz: string | null = null; // dazu mehr in Kapitel 9 (Union Types)Kleiner, aber wichtiger Unterschied zu vielen anderen Sprachen: TypeScript hat NUR number für ALLE numerischen Werte – kein separates int/float/double wie in Java oder C#, weil auch JavaScript selbst keine solche Unterscheidung kennt.
Arrays
let genres: string[] = ['Fantasy', 'Abenteuer'];
let seitenzahlen: Array<number> = [1216, 423, 310]; // alternative Schreibweise, identische Bedeutung
genres.push('Klassiker'); // erlaubt - string passt
genres.push(42); // Fehler - number passt nicht in string[]string[] und Array<number> sind zwei Schreibweisen FÜR DASSELBE – die eckige-Klammer-Syntax ist im Alltag üblicher, die spitze-Klammer-Syntax ("generisch", mehr dazu in Kapitel 17) wird bei komplexeren, verschachtelten Array-Typen manchmal lesbarer.
Tupel: Arrays mit fester Länge und Typen pro Position
let koordinate: [number, number] = [52.5, 13.4]; // Breitengrad, Längengrad
let regalPosition: [string, number] = ['Regal A', 3]; // Regalname, Fachnummer
koordinate = [13.4, 52.5, 100]; // Fehler - Tupel erlaubt GENAU zwei ElementeEin Tupel ist ein Array mit FESTER Länge, bei dem JEDE Position ihren EIGENEN Typ hat – anders als number[] (beliebig viele Zahlen), erzwingt [number, number] GENAU zwei Zahlen an FESTEN Positionen.
any, unknown, never, void: die vier Sonderfälle
any– schaltet die Typprüfung KOMPLETT ab. TypeScript behandelt einenany-Wert wie reines JavaScript: alles ist erlaubt, auch offensichtlich falsche Operationen. Sollte SPARSAM eingesetzt werden – jedesanyist ein "blinder Fleck" im sonst durchgängigen Typsystem.unknown– das SICHERE Gegenstück zuany: ein Wert unbekannten Typs, den Sie aber ERST nach einer expliziten Typprüfung (siehe Kapitel 19, Type Narrowing) tatsächlich verwenden dürfen.never– der Typ für Werte, die NIEMALS vorkommen (eine Funktion, die immer einen Fehler wirft, oder eine Endlosschleife) – kommt uns bei erschöpfenden Prüfungen in Kapitel 19 wieder unter.void– der Rückgabetyp für Funktionen, die NICHTS zurückgeben (nur Seiteneffekte wieconsole.loghaben) – ausführlicher in Kapitel 6.
let unsichererWert: any = 'Text';
unsichererWert.foo.bar.baz(); // KEIN Fehler zur Kompilierzeit, obwohl garantiert zur Laufzeit abstürzt
let externeDaten: unknown = JSON.parse('{}');
externeDaten.foo; // Fehler - erst nach Typprüfung erlaubt (siehe Kapitel 19)Achtung: any ist verlockend, wenn ein Typfehler "einfach verschwinden" soll – widerstehen Sie dem. any deaktiviert die Typprüfung nicht nur für DIESEN Wert, sondern auch für ALLES, was daraus abgeleitet wird – ein einziges any kann sich unbemerkt durch große Teile eines Projekts "durchfressen". Nutzen Sie stattdessen unknown, wenn der Typ WIRKLICH noch nicht bekannt ist.
Praxis: das erste Buch modellieren
Erweitern wir src/index.ts um unsere ersten, echten Bibliotheksdaten:
let titel: string = 'Der Herr der Ringe';
let autor: string = 'J.R.R. Tolkien';
let erscheinungsjahr: number = 1954;
let seitenzahl: number = 1216;
let istAusgeliehen: boolean = false;
let genres: string[] = ['Fantasy', 'Abenteuer'];
console.log(`${titel} von ${autor} (${erscheinungsjahr}), ${seitenzahl} Seiten`);
console.log(`Genres: ${genres.join(', ')}`);
console.log(`Ausgeliehen: ${istAusgeliehen ? 'ja' : 'nein'}`);Sechs einzelne Variablen für EIN Buch wirken bereits jetzt unhandlich – im nächsten Kapitel lernen wir let vs. const im TypeScript-Kontext kennen, und ab Kapitel 7 (Interfaces) fassen wir diese losen Variablen zu einem einzigen, sauberen Buch-Typ zusammen.
Tipp: Führen Sie npm start nach JEDER Code-Änderung in diesem Tutorial aus, um das tatsächliche Verhalten zu sehen – TypeScript-Fehler stoppen die Ausführung, bevor überhaupt etwas läuft, also ist ein Programmlauf gleichzeitig eine Bestätigung, dass der aktuelle Code typkorrekt ist.