Die TypeScript-3.8-Beta liefert Änderungen bei Importen und Exporten

Die erste Betaversion des Jahres liefert zahlreiche Features, die das Arbeiten mit TypeScript komfortabler machen sollen.

In Pocket speichern vorlesen Druckansicht
Die TypeScript-3.8-Beta ändert Importe/Exporte und bietet ECMAScript-Features
Lesezeit: 2 Min.
Von
  • Björn Bohn

Microsoft hat Version 3.8 des JavaScript-Supersets TypeScript als Beta zur Verfügung gestellt. Zu den Änderungen zählen unter anderem Imports und Exports für reine Types, 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 soll die Beta bereits alle Features enthalten, die im endgültigen Release Teil der neuen Version sind.

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 importiert 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 plant außerdem eine Flag, die unter dem vorläufigen Namen importsNotUsedAsValues läuft, und darüber bestimmen soll, was mit Importen passiert, die bei der Laufzeit nicht genutzt werden.

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 Beta testen möchte, kann das unter anderem via npm install typescript@beta tun. (bbo)