TypeScript 5.0 ist kein gewöhnliches Update. Decorators sind endlich stabil, Switch-Statements bekommen Auto-Complete, und die Package-Größe wurde fast halbiert. Für den täglichen Entwickleralltag bedeutet das weniger Boilerplate, schnellere Installs und bessere IDE-Unterstützung.
Decorators: Endlich offiziell
Decorators gibt es in TypeScript schon eine Weile, aber bisher nur als experimentelles Feature. Mit Version 5.0 sind sie offiziell released und produktionsreif.
Was sind Decorators? Im Grunde wiederverwendbare Annotationen, die du über Methoden, Klassen oder Eigenschaften schreiben kannst. Ein typisches Beispiel: Du willst jeden Login-Aufruf automatisch loggen. Statt das Logging in jede Methode einzeln einzubauen, schreibst du einmal einen @logMethod-Decorator und setzt ihn über die Methode.
function logMethod(target: any, key: string, descriptor: PropertyDescriptor) {
const original = descriptor.value;
descriptor.value = function (...args: any[]) {
console.log(`Calling ${key} with`, args);
return original.apply(this, args);
};
return descriptor;
}
class AuthService {
@logMethod
login(user: string) {
/* ... */
}
}
Wichtig: Die neuen Decorators in 5.0 sind nicht rückwärtskompatibel mit dem alten experimentalDecorators-Flag. Bei bestehenden Projekten, die darauf aufbauen (z.B. NestJS), solltest du vorerst noch beim alten Verhalten bleiben und die Migration planen.
Auto-Complete für Switch-Statements
Neu in 5.0: Wenn du einen switch über einen Union Type schreibst, schlägt TypeScript automatisch alle möglichen case-Zweige vor. Das klingt klein, spart aber echte Zeit bei großen Enums oder String-Unions.
Kleinere Package-Größe
Das TypeScript-Paket wurde von Node-Modules auf neuere JavaScript-APIs umgeschrieben. Das Ergebnis: fast 20% kleineres npm-Paket und spürbar schnellere Kompilierung in großen Projekten. Gerade bei CI/CD-Pipelines, die TypeScript bei jedem Build installieren, macht sich das bemerkbar.
const Type Parameters
Mit 5.0 kannst du Generic-Parameter als const markieren. Bisher hat TypeScript bei einem Literal-Array wie ["a", "b"] als Typ string[] inferiert. Mit const-Parameter bekommst du stattdessen readonly ["a", "b"]. Mehr Präzision, weniger manuelle Type-Annotations.
Was bedeutet das für deinen Code?
Wenn du TypeScript heute in neuen Projekten einsetzt, ist der Upgrade auf 5.0 in den meisten Fällen unkompliziert. Die offiziellen Release Notes listen alle Breaking Changes auf. Bei NestJS oder Angular-Projekten lohnt sich ein Blick in die jeweiligen Framework-Dokumentationen, bevor du Decorators migrierst.
TypeScript lernen zahlt sich aus: Als Fullstack-Entwickler ist es heute praktisch Standard. Im Fullstack Web Developer Kurs bei DevKarriere lernst du TypeScript von Grund auf im Kontext echter Projekte.
Häufige Fragen
Muss ich bei TypeScript 5.0 etwas migrieren?
In den meisten Projekten nicht. Die größte Breaking Change betrifft Decorators: Wenn du das alte experimentalDecorators-Flag nutzt, bleiben die alten Decorators weiter funktionsfähig. Neue Decorators nach dem TC39-Standard aktivieren sich automatisch ohne das Flag.
Sind die neuen Decorators kompatibel mit NestJS?
Noch nicht vollständig. NestJS setzt aktuell noch auf das alte experimentalDecorators-System. Bis zur vollständigen Migration solltest du in NestJS-Projekten weiterhin "experimentalDecorators": true in der tsconfig.json setzen.
Wie groß ist der Performance-Unterschied in 5.0?
Laut den offiziellen Benchmarks ist TypeScript 5.0 bei der Kompilierung rund 10-15% schneller als 4.9. Besonders bei Cold Builds auf CI-Servern macht sich die kleinere Bundle-Größe bemerkbar.