Apptiva Logo

Das neue TypeScript erasableSyntaxOnly-Flag für Node.js 23

Node.js unterstützt ab Version 23 das direkte Starten von TypeScript-Code. Da aber nicht alle TypeScript-Features unterstützt werden, kann mit dem erasableSyntaxOnly-Flag die Kompatibilität sichergestellt werden.

Publiziert am von Patrik Stutz

TypeScript ist nur JavaScript mit Typ-Annotationen. Entfernt man diese Typ-Annotationen, erhält man JavaScript. Diese Aussage ist leider nicht ganz richtig!

Auch wenn sich neue TypeScript-Features heutzutage genau an diese Regel halten, so gab es in der Vergangenheit Features, für die das nicht zutraf.

Ein Beispiel dafür sind Enums, welche es so in JavaScript nicht gibt. Enums werden auch zur Laufzeit benötigt und können beim Build-Step nicht einfach aus dem Code-entfernt werden.

Weitere Beispiele sind:

  • Enums
  • Namespaces
  • Parameter-Properties in Klassen
  • Import-Aliases

TypeScript-Support ab Node.js 23

In Node.js ist es ab Version 23 möglich direkt TypeScript auszuführen, ohne es erst nach JavaScript zu kompilieren. Dabei werden einfach sämtliche Typ-Annotationen im Code durch Leerzeichen ersetzt. Da dies bei den oben genannten Features aber problematisch ist, gibt es nun mit erasableSyntaxOnly ein neues Typescript-Flag, welches die Nutzung dieser Features verhindert.

Möchte man also eine TypeScript-App ohne einen Build-Step direkt mit Node.js ausführen, so kann dieses Flag sicherstellen, dass dies auch wie gewünscht funktioniert.