Programmiersprache TypeScript 3.8 verfügt über eine neue Syntax für Importe und Exporte

Mit TypeScript 3.8 können Entwickler auf eine neue Syntax zurückgreifen, die den Import und Export reiner Typen klarer machen soll.

In Pocket speichern vorlesen Druckansicht 10 Kommentare lesen
TypeScript 3.8 verfügt über eine neue Syntax für Importe und Exporte
Lesezeit: 2 Min.
Von
  • Björn Bohn

Microsoft hat Version 3.8 des JavaScript-Supersets TypeScript veröffentlicht. Zu den Änderungen zählen unter anderem Importe und Exporte für reine Typen, die für ECMAScript 2020 vorgeschlagenen Private Fields und die export * as ns-Syntax sowie die Möglichkeit await in der obersten Ebene eines Moduls einzusetzen. Wie üblich hat sich an den Features seit dem Veröffentlichen der Beta-Version wenig geändert.

Durch die neuen Importe und Exporte sollen Entwickler eine bessere Kontrolle über die Befehle bekommen und so eine Reihe möglicher Probleme umgehen können. Die Syntax dafür sieht wie folgt aus:

import type { SomeThing } from "./some-module.js";

export type { SomeThing };

Dabei überführt import type nur die Declarations, die Entwickler für Type-Annotationen oder andere Declarations verwenden wollen. TypeScript löscht sie immer vollständig, sodass keine Rückstände bei der Laufzeit zurückbleiben. export type funktioniert analog dazu für Type Contexts.

Microsoft hat außerdem eine neue Flag vorgestellt: importsNotUsedAsValues. Sie bestimmt darüber, was mit Importen passiert, die bei der Laufzeit nicht genutzt werden. Sie kann die Werte remove, preserve und error annehmen. Ersteres entfernt die Importe, zweiteres behält sie. Die dritte Option erhält sie ebenfalls, wirft allerdings einen Fehler, wenn ein Wertimport nur als Type verwendet wird.

Private Fields liegen derzeit als Stage-3-Proposal für ECMAScript vor, gelten also als potenzieller Kandidat für den Sprachstandard. Durch die Definition von Dingen, die außerhalb der Klasse nicht sichtbar sind, bietet das Feature eine stärkere Kapselung, die sicherstellen soll, dass Abhängigkeiten von Interna Benutzer von Klassen nicht versehentlich verwirren. TypeScript-Nutzer können bereits jetzt darauf zugreifen.

TypeScript-Entwickler wollen häufig einen einzelnen Einstiegspunkt definieren, der alle Member eines Moduls als einzelnen Member ausgibt. Dazu gibt es nun eine neue Syntax, die die Funktion wie folgt umsetzt:

export * as utilities from "./utilities.js";

Um die Einführung einer async-Funktion zu vermeiden, führt TypeScript das Feature-Top-Level await ein. Bisher war in JavaScript await nur innerhalb des Body einer async-Funktion erlaubt. Mit dem neuen Feature können Entwickler jedoch await auf der obersten Ebene eines Moduls verwenden.

Eine vollständige Liste der Änderungen bietet der TypeScript-Blog. Wer die neue Version testen möchte, kann das unter anderem mit dem Befehl npm install typescript tun. (bbo)