Die Typisierung sagt, wann festgelegt wird, welchen Datentyp ein Wert hat: beim Schreiben des Codes oder erst, während er läuft.
- Typisierung
Die Art, wie eine Sprache mit Datentypen umgeht: ob sie beim Schreiben des Codes festgelegt und geprüft werden oder erst während der Ausführung.
Beispiel: „TypeScript bringt statische Typisierung in eine Sprache, die von Haus aus dynamisch typisiert ist.“Abgrenzung zur starken und schwachen Typisierung: Das ist eine zweite, unabhängige Frage, nämlich ob die Sprache Typen stillschweigend umwandelt. JavaScript ist dynamisch und schwach, Python dynamisch und stark.
Statisch: festgelegt, bevor etwas läuft
Der Datentyp jeder Variablen steht im Code und wird beim Übersetzen geprüft. Wer einer Zahl einen Text zuweist, bekommt eine Meldung, bevor das Programm je gestartet ist.
Das kostet Schreibarbeit und spart Fehlersuche. Der zweite Gewinn ist die Unterstützung im Editor: Weil der Typ bekannt ist, kann er vorschlagen, welche Methoden es gibt, und beim Umbenennen alle Stellen mitziehen.
Dynamisch: entschieden, während es läuft
Der Typ ergibt sich aus dem Wert, der gerade zugewiesen wird, und darf wechseln. Das schreibt sich schneller und ist für kurze Skripte angenehm.
Mit der Größe eines Projekts kehrt sich das um. Ohne Typangaben muss jeder, der eine Funktion benutzt, ihren Rumpf lesen, um zu wissen, was sie erwartet. Deshalb wechseln größere Vorhaben in der JavaScript-Welt fast durchgehend auf TypeScript.
// dynamisch: erlaubt, fällt erst zur Laufzeit auf
let menge = 3;
menge = "drei";
// statisch (TypeScript): Fehler beim Übersetzen
let anzahl: number = 3;
// anzahl = "drei";Was das für ein Projekt bedeutet
Die Entscheidung fällt am Anfang und ist später teuer zu ändern. Für eine überschaubare Website spielt sie keine Rolle; sobald mehrere Menschen über Jahre an derselben Anwendung arbeiten, zahlt sich die statische Variante aus.