Angular 9 меньше, быстрее и проще в использовании, и он облегчит жизнь разработчикам Angular. Полная версия Angular 9 будет выпущена в месяце октябрь / ноябрь 2019.

Изучите это: Angular 9 против Angular 8 против Angular 7 против Angular 6, 5, 4, 2

Добавлены функции Angular 9 -

1. В ядро ​​добавлена ​​схема миграции недекорированных классов.

2. formControlName также принимает число в форме

3. Теперь разрешите директивы без селектора в качестве базовых классов в View Engine в компиляторе.

4. Добавлена ​​поддержка директивы без селектора в качестве базовых классов в Ivy, а также сделан компилятор Ivy по умолчанию для ngc.

5. Преобразуйте всю диагностику ngtsc в ts. Диагностика

6. bazel: поддерживайте цели ts_library как точки входа для ng_package.

7. core: добавить схему динамических запросов.

8. core: Отметить TestBed.get как устаревшее.

9. ivy: выставить помощник window.ng.getDebugNode, а также поддержать ng-add в пакете локализации.

10. ivy: i18n - добавить поддержку синтаксиса для блока метаданных $ localize.

11. ivy: i18n - реорганизуйте точки входа для лучшего повторного использования.

12. language-service: разрешить вход на TypeScriptHost.

13. языковая служба: предоставьте диагностику недопустимых templateUrls.

14. языковая служба: обеспечивает диагностику недопустимых styleUrls.

УДАЛЕНИЕ -

core: функция TestBed.get помечена как устаревшая, используйте вместо нее TestBed.inject.

Повышение производительности:

  1. Привязка тестов обновления, а также преобразование всех тестов на основе узлов для использования средств тестирования.
  2. Избегайте мегаморфных чтений во время привязки свойств.
  3. Избегайте повторных чтений lview в инструкциях по конвейеру.
  4. Избегайте повторных чтений LView в инструкциях по свойствам.
  5. Избегайте ненужных чтений DOM в инструкциях по стилю.
  6. Инициализируйте входы / выходы TNode на первом этапе создания Ivy.
  7. limit TNode.outputs читает для плюща.

8. Языковой сервис, сохраняйте кеш анализируемых модулей, когда исходные файлы не меняются.

It looks like -
describe(‘TypeScriptServiceHost’, () => {
 it(‘should not clear caches when external template changes’, () => {
 const tsLSHost = new MockTypescriptHost([‘/app/main.ts’], toh);
 const tsLS = ts.createLanguageService(tsLSHost);
 const ngLSHost = new TypeScriptServiceHost(tsLSHost, tsLS);
 const oldModules = ngLSHost.getAnalyzedModules();
 tsLSHost.override(‘/app/test.ng’, ‘<div></div>’);
 const newModules = ngLSHost.getAnalyzedModules();
 expect(newModules).toBe(oldModules);
 });
});

Критические изменения Angular 9 -

1) Приложения Ivy: -

Раньше в приложениях Ivy поставщики Hammer были включены по умолчанию. С помощью этого коммита приложения, которым нужна поддержка Hammer, должны импортировать HammerModule в свой корневой модуль, т.е.

импортировать {HAMMER_PROVIDERS} из ‘./dom/events/hammer_gestures’

2) ServiceWorker:
Удалите устаревшую опцию versionedFiles из конфигурации группы ресурсов Service worker в ngsw-config.json.

До

“assetGroups”: [
 {
 “name”: “test”,
 “resources”: {
 “versionedFiles”: [
 “/**/*.txt”
 ]
 }
 }
]

После

“assetGroups”: [
 {
 “name”: “test”,
 “resources”: {
 “files”: [
 “/**/*.txt”
 ]
 }
 }
]

Исправления ошибок Angular 9 -

common: обновите $ locationShim, чтобы уведомлять слушателей onChange перед отправкой событий AngularJS.

компилятор: вернуть enableIvy true при использовании readConfiguration

плющ -

1. Получите имя прямо из nativeNode

2. Обработка пустых привязок в средстве проверки типов шаблонов.

3. В ngcc обрабатывайте встроенный экспорт в коде commonjs.

4. ngcc должен индексировать только экспорт .d.ts в пакете.

5. Ошибка ngTemplateOutlet при переключении между нулевым значением и значением шаблона.

языковая служба -

1. Создайте экземпляр MetadataResolver один раз.

2. Удалите «контекст», используемый для разрешения модуля.

ngcc -

1. Обработайте глубокий импорт, для которого уже есть расширение.

2. Игнорировать свойства формата, которые существуют, но не определены.

Ссылка - https://github.com/angular/angular/blob/master/CHANGELOG.md

Примечание о совместимости. Основная цель обещания обратной совместимости - гарантировать, что изменения в основной структуре и инструментарии не нарушат существующую экосистему компонентов и приложений и не станут чрезмерным бременем для обновления / миграции. об авторах приложений и компонентов Angular.

Примечание: версии Angular ^ 4.0.0 и ^ 5.0.0 больше не поддерживаются.

Наслаждаться!!