TypeScript Template Literal Types: Ausdrucksstarke, typsichere APIs entwickeln

Template Literal Types kamen mit TypeScript 4.1 und die meisten Teams nutzen sie für ein, zwei Kniffe, bevor sie zur Tagesordnung übergehen. Damit bleibt der Großteil ihres Potenzials ungenutzt. Systematisch eingesetzt, lassen sich damit Verträge auf Protokollebene direkt ins Typsystem kodieren — Event-Busse, Routen-Register, Berechtigungssysteme, Namenskonventionen für CSS-Tokens. Kein Laufzeit-Overhead, vollständige IDE-Autovervollständigung, Fehler werden schon beim Kompilieren erkannt.

APIs, die stark auf Strings setzen, sind am schwersten typsicher zu halten. Event-Emitter, Route-Handler, CSS-in-JS-Helfer — sie alle nehmen Strings entgegen, und ohne Template Literal Types sind diese Strings entweder string (nutzlos) oder eine handgeschriebene Union (fragil und umständlich). Die handgeschriebene Union ist das eigentliche Problem: Sie driftet auseinander, sobald ein Domänenbegriff umbenannt wird.