TypeScript 6.0 ist jetzt verfügbar, das letzte Release mit einem Compiler für JavaScript.

Die Microsoft Corporation hat die Version 6.0 von TypeScript veröffentlicht, einer Sprache zur Entwicklung von Webanwendungen, die die Möglichkeiten von JavaScript erweitert, sowie die dazugehörigen Werkzeuge. Der Compiler-Code, der TypeScript in JavaScript umwandelt, wird unter der Apache 2.0-Lizenz veröffentlicht und die Entwicklung erfolgt in einem öffentlichen Repository über den Dienst GitHub. Die Spezifikationen der Sprache sind offen und wurden im Rahmen des Open Web Foundation Specification Agreement veröffentlicht.

Die Sprache TypeScript erweitert die Möglichkeiten von JavaScript und bleibt dabei vollständig abwärtskompatibel, was die Umstellung bestehender Anwendungen auf TypeScript erleichtert. Die endgültige Anwendung in TypeScript wird in reguläres JavaScript kompiliert, das in jedem modernen Webbrowser ausgeführt oder mit Plattformen wie Node.js, Bun und Deno verwendet werden kann. In TypeScript-Anwendungen können bestehende JavaScript-Bibliotheken genutzt werden. Im Gegensatz zu JavaScript bietet TypeScript Werkzeuge zur expliziten Definition von Typen sowie die Unterstützung vollwertiger Klassen. Die statische Typisierung hilft, viele Fehler während der Entwicklung zu vermeiden, ermöglicht zusätzliche Optimierungstechniken, vereinfacht das Debugging und macht den Code lesbarer und leichter wartbar.

Die Version 6.0 von TypeScript wird als letzte Version mit dem Compiler in TypeScript bereitgestellt, der in JavaScript umgewandelt wird. In der Version 7.0 wird das Projekt auf einen neuen Compiler namens typescript-go (tsgo) umsteigen, der ab 2024 in Go entwickelt wird. Der neue Compiler wird die Build-Geschwindigkeit erheblich erhöhen, den Speicherverbrauch reduzieren und die Startzeit von Code-Editoren verkürzen, was aktuelle Skalierungsprobleme bei sehr großen Projekten lösen wird. Zudem wird ein kompaktes Kommandozeilenwerkzeug zur Verfügung stehen, mit dem der Code schnell zusammengebaut werden kann, um seine Funktionalität zu überprüfen.

Die Version 6.x von TypeScript wird weiterhin mit dem alten Compiler ausgeliefert, enthält jedoch separate Änderungen zur Vorbereitung auf die Migration zur neuen Implementierung. Die Einführung von TypeScript 6.0 wird als verbindendes Glied zwischen den Versionen 5.9 und 7.0 positioniert und enthält vor allem Änderungen, die auf eine Vereinfachung der künftigen Migration zur Version 7.0 abzielen. Eine Vorabversion von TypeScript 7.0 steht zum Testen zur Verfügung und wurde in Form eines Plugins für VSCode und eines NPM-Pakets veröffentlicht. Nach der Veröffentlichung von TypeScript 7.0 werden die Versionen 6.x und 7.x parallel koexistieren und begleitet, bis die Version 7.x den reifen Zustand erreicht hat, der bereit ist, das alte Werkzeug vollständig zu ersetzen.

Unter den Änderungen in TypeScript 6.0:

  • Die Möglichkeit zur Verwendung von Präfixen „#/“ im Node.js-Stil für den Import von Modulaliasen, die innerhalb des Pakets definiert sind, anstelle von relativen Pfaden, wurde implementiert. Zum Beispiel: ‘import * as utils from „#root/utils.js“‘ anstelle von ‘import * as utils from „../../utils.js“‘.
  • Ein Flag „—stableTypeOrdering“ wurde hinzugefügt, um den in der Version 7 verwendeten Algorithmus zur deterministischen Typensortierung im Compiler zu aktivieren, der die gleiche Reihenfolge der Typdefinitionen in allen Umgebungen gewährleistet. Dieser Modus sollte nur zur Diagnose möglicher Probleme vor der Migration zur Version 7 verwendet werden, da seine Aktivierung in TypeScript 6.0 den Compiler um 25 % verlangsamen kann.
  • Eingebaute Typen für die API Temporal wurden umgesetzt, die alternative Methoden zur Arbeit mit Datums- und Zeitangaben bieten, einschließlich der Möglichkeit, Daten unter Berücksichtigung von Zeitzonen zu manipulieren, Zeit zu konvertieren, die Ausgabe zu formatieren und arithmetische Operationen mit Zeit durchzuführen.
  • Es wurden Typen für die Upsert-Methoden getOrInsert und getOrInsertComputed in den Objekten Map und WeakMap hinzugefügt, die den bereits in der Sammlung vorhandenen Wert zurückgeben, der mit dem angegebenen Schlüssel assoziiert ist, oder einen neuen Eintrag erstellen, falls der Schlüssel nicht gefunden wurde.
  • Unterstützung für die Funktion RegExp.escape wurde hinzugefügt, die Sonderzeichen in Zeichenfolgen maskiert, um eine sichere Verwendung als Vorlage innerhalb von regulären Ausdrücken zu ermöglichen, die über den Konstruktor RegExp() angegeben werden.
  • Die Standardeinstellungen wurden geändert:
    • Der Parameter rootDir verweist jetzt auf das aktuelle Verzeichnis „.“, in dem die Konfigurationsdatei tsconfig.json gespeichert ist, anstelle des typischen Verzeichnisses für Quellcode.
    • Das Feld „types“ in tsconfig.json wird jetzt als „[]“ anstelle von „[„*“]“ definiert, d.h. TypeScript schließt jetzt standardmäßig keine Pakete aus „node_modules/@types“ ein und erfordert eine explizite Angabe globaler Pakete (z.B. [„node“, „jest“]). Diese Änderung führt zu einer Verkürzung der Kompilierzeit um 20-50%.
    • Der Wert target umfasst jetzt die aktuelle ECMAScript-Version (es2025). Die ältere Version es5 (ECMAScript 5) ist im Feld target als veraltet deklariert, während die Version es6 (ECMAScript 2015) als Mindestversion festgelegt ist.
    • Der strikte Modus für die strikte Typprüfung ist standardmäßig aktiviert.
    • Der Parameter module ist standardmäßig auf „esnext“ gesetzt, was die Unterstützung von JavaScript-Modulen (ESM) mit den Direktiven import und export umfasst, anstelle des veralteten Formats CommonJS.
  • Zur Verbesserung der Compiler-Leistung wurden folgende Optionen für veraltet erklärt:
    • Die Option „—baseUrl“.
    • Die Verwendung des Schlüsselworts module zur Definition von Modul-Namensräumen („module Foo { … }“ anstelle von „namespace Foo { … }“).
    • Die Option „—outFile“ (es sollten externe Bundler wie esbuild, Rollup und Webpack verwendet werden);
    • Der Modus „—moduleResolution: classic“ (es wird empfohlen, nodenext oder bundler zu verwenden).

Quelle: opennet.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster