TypeScript-Funktionen dekorieren: Nicht nur zu Weihnachten!

Der Vorschlag für Decorators in ECMAScript hat mittlerweile Stufe 3 erreicht und somit sehr gute Chancen, in einer der nächsten ECMAScript-Versionen enthalten zu sein.

Seit Version 5.0 orientiert TypeScript sich an diesem Vorschlag bei seiner Implementierung von Decorators, mit weiteren Ergänzungen und Anpassungen in späteren Releases. Dadurch können wir Decorators bereits nutzen und bekommen einen Vorgeschmack darauf, was irgendwann nativ in JavaScript möglich sein wird.

In diesem Vortrag werden wir uns damit beschäftigen, wie diese Decorators funktionieren und wie wir sie in unseren Projekten effektiv einsetzen können. In praktischen Beispielen implementieren wir unsere eigenen Decorators und zeigen dabei unter anderem, wie einfach sich damit Logging für Funktionen oder Memoisierung umsetzen lässt.

Als besonderes Schmankerl entwickeln wir am Ende unser eigenes Decorator-basiertes Dependency-Injection-"Framework".

Vorkenntnisse

Grundkenntnisse in JavaScript/TypeScript reichen aus. Im Talk werden wir uns mit den nativen Möglichkeiten von TypeScript beschäftigen, weswegen keine Kenntnis eines Frameworks notwendig ist.

Am Ende werden wir einen Test in Jest schreiben, um unsere Dependency-Injection zu validieren, aber auch dafür ist keine Vorkenntnis in Jest nötig.

Lernziele

Nach dem Talk kennen die Teilnehmenden das Konzept von Decorators (allgemein das Decorator-Pattern und speziell Decorators in TypeScript). Sie haben verschiedene sinnvolle Einsatzmöglichkeiten kennengelernt und sind in der Lage, eigene Funktionen- und Klassen-Decorators zu schreiben.

Speaker

 

Marco Sieben
Marco Sieben wurde durch TypeScript von einem Frontend-Skeptiker zu einem Fronent-Enthusiasten konvertiert und liebt es, neue Features auszuprobieren. Bis vor kurzem war er noch neidisch auf Python-Entwickler, die mit @functools.cache eine elegante Möglichkeit zur Memoisierung zur Verfügung haben. Seit er das mit Decorators in TypeScript aber genauso einfach umsetzen kann, ist die Welt wieder in Ordnung.
LinkedIn

enterJS-Newsletter

Du möchtest über die enterJS
auf dem Laufenden gehalten werden?

 

Anmelden