Angular 10, ein bedeutendes Upgrade des populären Web-Frameworks, hat mit neuen Funktionen das Stadium des Release Candidate erreicht.
Angular ist das von Google entwickelte, TypeScript basierte Web Framework. Das Upgrade auf Angular 10 konzentriert sich mehr auf Verbesserungen des Ökosystems als auf neue Funktionen.
Angular 10 erzeugt kleinere Bundles als die frühere Version Angular 9. Ein Release Datum für Angular 10 steht bis dato nicht fest. Angular 9 ist seit dem 6. Februar 2020 allgemein verfügbar, gefolgt vom Angular 9.1 am 25. März 2020.
Vorabversionen von Angular 10 könnt ihr euch jetzt schon auf GitHub ansehen.
Neue Funktionen in Angular 10
Eine Compiler-Schnittstelle steht neuerdings zur Verfügung. Sie umhüllt den eigentlichen ngtsc-Compiler. Der Compiler verwaltet mehrere Typecheck-Dateien über die Projektschnittstelle und erstellt bei Bedarf Meta-Informationen.
Für den Compiler werden Namespaces hinzugehügt, sodass das Lesen von Properties und für Methodenaufrufe erleichtert wird.
EntryPointFinder, ein programmbasierter Einstiegspunkt-Finder, wird hinzugefügt, der aus den Importen in einem Programm, das durch eine tsjconfig.json
Datei angegeben wird, gesetzt werden kann. Es wird erwartet, dass dieser schneller als der DirectoryWalkerEntryPointFinder ist. Zumindest wenn das aktive Programm nur einen kleinen Teil der installierten Entrypoints importiert, ist das zu erwarten.
Angular 10 und der generische Typ
Im Zuge einer Änderung wurde für ModuleWithProviders
die generische Version obligatorisch gemacht. Ein generischer Typ-Parameter war für das ModuleWithProviders-Pattern erforderlich, um mit der Ivy-Kompilierungs- und Rendering-Pipeline zu arbeiten. Vor dieser Übergabe ließ View Engine das Weglassen des generischen Typs zu. Wenn ein Entwickler ModuleWithProviders ohne einen generischen Typ verwendet, wird der Code bei einer Migration auf Version 10 aktualisiert. Wenn jedoch ein Entwickler View Engine verwendet und von einer Bibliothek abhängt, die den generischen Typ auslässt, wird ein Build-Fehler ausgegeben. In diesem Fall wird ngcc
nicht helfen und die Migration wird nur den Anwendungscode umfassen. Der Library-Autor wird kontaktiert, um seine Bibliothek (Library) zu reparieren. Als Workaround könnte skipLibChecks
in tsconfig
auf false gesetzt werden.
Angular 10 auf TypeScript 3.9
TypeScript 3.9 ist jetzt verfügbar und wird auch genutzt. Die Unterstützung für TypeScript 3.8 endet somit. Dies ist eine bahnbrechende Veränderung. TypeScript 3.6 und TypeScript 3.7 werden ebenfalls nicht mehr unterstützt.
Bei der Type-checking wurden an der Compiler-cli Leistungsoptimierungen vorgenommen.
Das Zusammenführen mehrerer Übersetzungsdateien wird nun auch unterstützt. Zuvor war nur eine Übersetzungsdatei pro Gebietanwendung zulässig. Mit dem Upgrade können Benutzer mehrere Dateien pro Gebietsschema gleichzeitig angeben, und die Transaktionen aus jeder Datei werden anhand der Messaging-ID zusammengeführt.
Eine weitere erwähnenswerte Änderung ist, dass jeder Resolver, der NULL
zurückgibt, die Navigation abbricht.
Das Hinzufügen von Abhängigkeitsinformationen und ng-Content-Selektoren
zu Metadaten. Dieses optionale Compiler-Feature liefert zusätzliche Metadaten, die für Werkzeuge wie den Angular Language Service nützlich sind und die Möglichkeit bieten, Vorschläge für in Bibliotheken definierte Direktiven/Komponenten zu entwickeln.
Weitere Leistungsverbesserungen werden erreicht, indem eine Verringerung der Größe des Eingangsmanifests und eine Caching-Technik im Manifest enthalten wird. Darüber hinaus werden Abhängigkeiten im Eingangsmanifest zwischengespeichert und von dort aus gelesen, anstatt jedes Mal neu berechnet zu werden.
Sobald Angular 10 released wird, werden wir unsere Angular Schulungen auf die neue Version updaten und alle neue Funktionen in unsere Folien aufnehmen.