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.
- 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.
Imports und Exports im Detail
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.
ECMAScript-Funktionen in TypeScript
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)