TypeScript 3.8 fügt Nur-Typ-Importe und -Exporte hinzu
TypeScript 3.8, eine neue Version von Microsofts typisierter Obermenge von JavaScript, ist jetzt als Produktionsversion verfügbar. Das neueste TypeScript-Upgrade konzentriert sich auf Nur-Typ-Importe und -Exporte sowie auf die Einhaltung der ECMAScript-Standards.
Die Version fügt eine neue Syntax für Nur-Typ-Importe und -Exporte hinzu, um den Benutzern eine genauere Kontrolle über Import und Elision zu ermöglichen. Die import type
Syntax importiert nur Deklarationen, die für Typanmerkungen und Deklarationen verwendet werden sollen, und wird immer vollständig gelöscht. Die export type
Syntax bietet nur einen Export, der für Typkontexte verwendet werden soll, und wird aus der TypeScript-Ausgabe gelöscht.
TypeScript hat die Importsyntax von JavaScript verwendet, um Referenztypen zu aktivieren. Die Funktion war zwar praktisch, funktionierte jedoch nur aufgrund der Import-Elisionsfunktion, bei der TypeScript-Typimporte weggelassen werden, wenn TypeScript JavaScript-Dateien ausgibt. Die Importentscheidung war jedoch sowohl unzureichend als auch problematisch.
In Verbindung mit import type
TypeScript 3.8 wird außerdem ein Compiler-Flag hinzugefügt, um zu steuern, was mit Importen geschieht, die zur Laufzeit nicht verwendet werden : importsNotUsedAsValues
.
In Bezug auf den ECMAScript-Standard für JavaScript bietet TypeScript 3.8 Unterstützung für private ECMAScript-Felder, die Teil eines Deklarationsvorschlags für Klassenfelder für JavaScript ist. Öffentliche und private Felder werden gemäß diesem Vorschlag in ein einziges orthogonales Ganzes integriert.
Weitere in TypeScript 3.8 versprochene Verbesserungen sind:
- Inkrementelle Typprüfung „Schnell und locker“ mit Compileroption
assumeChangesOnlyAffectDirectDependencies
. Diese Option kann die Erstellungszeiten in bestimmten Dateien verkürzen, da TypeScript nur geänderte Dateien sowie Dateien, die sie direkt importieren, erneut überprüft / neu erstellt. Es wird für große Codebasen empfohlen, bei denen Entwickler bereit sind, vollständige Projektfehler auf einen späteren Zeitpunkt zu verschieben. - Implementierung des Exports als
* ns
Syntax mit einem einzigen Einstiegspunkt, um alle Mitglieder eines anderen Moduls als ein einziges Mitglied verfügbar zu machen. - Top-Level
await
, eine bevorstehende ECMAScript-Funktion zum Aufheben von Einschränkungen bei der Verwendung einesawait
Ausdrucks am Anfang einer Datei unter bestimmten Bedingungen. - JavaScript-Dateien werden in TypeScript 3.8 durch Aktivieren des
allowJs
Flags unterstützt. Die Typprüfung dieser Dateien wird über diecheckjs
Option oder durch Hinzufügen eines // @ ts-check-Kommentars oben in den .js-Dateien unterstützt. Neue JSDoc-Tags werden für Eigenschaften genutzt, da JavaScript-Dateien keine dedizierte Syntax für die Typprüfung haben. - Ein
watchOptions
Feld intsconfig.json
undjsconfig.json
ermöglicht es Benutzern, dem Compiler / Sprachdienst mitzuteilen, welche Strategien zur Dateiüberwachung verwendet werden sollen, um Dateien und Verzeichnisse zu verfolgen. - Ein Refactoring zum Konvertieren von Zeichenfolgenverkettungen.
- Strengere Zuweisbarkeitsprüfungen für Gewerkschaften mit Indexsignaturen, eine bahnbrechende Änderung.
- In einer weiteren bahnbrechenden Änderung ist
object
in JSDoc nicht mehrany
unternoImplicitAny
.
Sie können die allgemeine Version von TypeScript 3.8 über NuGet oder über NPM installieren:
npm install typescript