Was ist neu in Angular 11?

Angular 11, das neueste Upgrade des von Google entwickelten Webframeworks, wurde gerade als Produktionsversion veröffentlicht. Zu den Highlights zählen strengere Typen, Verbesserungen der Routerleistung und das automatische Inlining von Schriftarten.

Mit dieser letzten Funktion werden Apps schneller, indem die erste inhaltliche Farbe beschleunigt wird. Während der Kompilierungszeit lädt die Angular-CLI Schriftarten herunter und integriert sie, die in der Anwendung verwendet und verknüpft werden. Das automatische Inlining von Schriftarten ist in Apps mit Angular 11 standardmäßig aktiviert. Anwendungen müssen aktualisiert werden, um dies nutzen zu können.

Die auf GitHub verfügbare Angular 11-Produktionsversion folgt einer Reihe von Beta-Versionen und Release-Kandidaten. Weitere Verbesserungen in Angular 11 sind:

  • Leistungsverbesserungen und neue APIs. Die parallelFunktion erleichtert die Arbeit mit asynchronen Aktionen in Tests, indem mehrere asynchrone Interaktionen mit Komponenten parallel aktiviert werden.
  • Strengere Typen werden für DatePipePipes hinzugefügt und nummeriert, um Missbräuche wie das Übergeben eines Observable oder eines Arrays zu erkennen.
  • Verbesserte Berichterstellung und Protokollierung.
  • Ein Update für den Angular Language Service, das eine leistungsfähigere und genauere Erfahrung bietet.
  • Ein Update der HMR-Unterstützung (Hot Module Replacement) nutzt die CLI, um die Aktivierung von HMR beim Starten einer Anwendung mit zu ermöglichen ng serve.
  • Die experimentelle Unterstützung für Webpack 5 bietet dank CommonJS-Tree-Shaking einen Weg zu schnelleren Builds mit dauerhaftem Festplatten-Caching und kleineren Bundles.
  • TSLint ist veraltet. Die Projektersteller empfehlen die Migration zu ESLint.
  • Für den Angular-Compiler keySpanwürde dem VariableKnoten hinzugefügt .
  • Der Router in Angular 11 würde den Standardwert relativeLinkResolution von "Legacy" in "Korrigiert" ändern  . Bei der Migration werden RouterModuleKonfigurationen aktualisiert , die den Standardwert verwenden, um jetzt speziell "Legacy" zu verwenden, um Unterbrechungen während der Aktualisierung zu vermeiden.
  • In einem Fix für den Kern wird im Entwicklungsmodus eine Richtlinie für vertrauenswürdige Typen eingeführt. Es ermöglicht beliebige unsichere Konvertierungen in vertrauenswürdige Typen, um Entwicklungsfunktionen zu unterstützen. Außerdem wird ein Modul hinzugefügt, um eine Richtlinie für vertrauenswürdige Typen zur internen Verwendung durch Angular zu erstellen.
  • Neue Optionen für initialNavigation werden zu älteren Funktionen hinzugefügt.
  • Beim Code-Refactoring im Router wird der Parametertyp in navigateByUrlund createUrlTreegenauer angepasst.
  • ngDevModeKann zur Verbesserung der Routerleistung verwendet werden, um Fehlermeldungen zu baumeln.
  • Für Servicemitarbeiter wird eine UnrecoverableStateError Benachrichtigung hinzugefügt, mit der ein Problem behoben wird, bei dem ein fehlerhafter Status auftritt, bei dem nur Teile einer Anwendung ordnungsgemäß geladen werden. Diese Situation ist aufgetreten, als der Browser eifrig zwischengespeicherte Assets aus dem Cache entfernt hat, die auf dem Server nicht mehr gefunden werden können.
  • Die Unterstützung für die Browser Microsoft IE 9 und IE 10 wird ebenso entfernt wie die Unterstützung für IE Mobile.
  • Unterstützung für ISO-Wochen-Nummerierungsjahresformate wird hinzugefügt formatDate.
  • Für die Compiler-CLI werden Schnittstellen definiert, für die verwendet werden kann TemplateTypeChecker. Auch bei Compiler-Cli wurden Leistungsverbesserungen vorgenommen.
  • Für den Kern wird eine Migration hinzugefügt, die alle Importe und Aufrufe der veralteten asyncFunktion findet @angular/core/testingund durch diese ersetzt waitforasync.
  • nullist jetzt in den Typen von enthalten .parent.
  • Eine Vielzahl von Fehlerkorrekturen ist geplant, einschließlich einer Verbesserung der Typisierung gängiger Pipes und einer weiteren Korrektur, um sicherzustellen, dass sie TestBednicht vor dem Override-Provider instanziiert wird.
  • Die Unterstützung für TypeScript 3.9 wurde aus dem Compiler entfernt. Ein Upgrade auf TypeScript 4.0 wird empfohlen.

In einer für Angular veröffentlichten Roadmap, in der Funktionen aufgeführt sind, die sich entweder in der Entwicklung befinden oder für die Zukunft vorgesehen sind, werden Funktionen wie native vertrauenswürdige Typen und die strikte Eingabe von Formularen aufgeführt. Die Angular 10.1-Punktversion mit Verbesserungen an Compiler und Router wurde am 8. September veröffentlicht. Angular 10.0 mit Tool- und Ökosystemfunktionen wurde am 24. Juni veröffentlicht.