填写这份《一分钟调查》,帮我们(开发组)做得更好!去填写Home

更新到 Angular 版本 9

Updating to Angular version 9

本指南包含关于更新到下一个 Angular 版本所需的全部知识。

This guide contains everything you need to know about updating to the next Angular version.

更新 CLI 应用

Updating CLI Apps

有关如何更新到最新 Angular 版本的分步说明(并利用我们的自动迁移工具进行更新),请使用 update.angular.io 上的交互式更新指南。

For step-by-step instructions on how to update to the latest Angular release (and leverage our automated migration tools to do so), use the interactive update guide at update.angular.io.

如果您对 CLI 正在运行的某些迁移工作感到好奇,参见“自动迁移”部分以了解关于要更改哪些代码以及更改原因的详细信息。

If you're curious about the specific migrations being run by the CLI, see the automated migrations section for details on what code is changing and why.

版本 9 中的更改和弃用

Changes and Deprecations in Version 9

有关 Angular 弃用和移除实践的信息,参见 Angular 的发布实践

For information about Angular's deprecation and removal practices, see Angular Release Practices.

新的重大变化

New Breaking Changes

  • CLI 应用程序默认情况下以 AOT 模式编译(包括模板类型检查)。以前仅使用 JIT 构建的用户可能会看到新的类型错误。有关更多信息和调试提示,请参见我们的模板类型检查指南

    CLI apps compile in AOT mode by default (which includes template type-checking). Users who only built with JIT before may see new type errors. See our template type-checking guide for more information and debugging tips.

  • 不再支持 TypeScript 3.4 和 3.5。请更新至 Typescript 3.7。

    Typescript 3.4 and 3.5 are no longer supported. Please update to Typescript 3.7.

  • tslib 现在被列为对等(peer)依赖,而不是直接依赖。如果不使用 CLI,则必须手动安装 tslib ,使用 yarn add tslibnpm install tslib --save

    tslib is now listed as a peer dependency rather than a direct dependency. If you are not using the CLI, you must manually install tslib, using yarn add tslib or npm install tslib --save.

新的弃用

New Deprecations

API

替代品

Replacement

备注

Notes

entryComponents

none

参见 entryComponents

See entryComponents

CurrencyPipe - DEFAULT_CURRENCY_CODE{provide: DEFAULT_CURRENCY_CODE, useValue: 'USD'}

从 v11 开始,默认代码将从由 LOCAL_ID 提供的语言环境数据中提取,而不再是固定值 USD

From v11 the default code will be extracted from the locale data given by LOCAL_ID, rather than USD.

ANALYZE_FOR_ENTRY_COMPONENTS

none

ANALYZE_FOR_ENTRY_COMPONENTS

See ANALYZE_FOR_ENTRY_COMPONENTS

不带泛型的 ModuleWithProviders

ModuleWithProviders without a generic

带泛型的 ModuleWithProviders

ModuleWithProviders with a generic

参见 ModuleWithProviders 部分

See ModuleWithProviders section

使用 Angular 特性的不带装饰器的基类

Undecorated base classes that use Angular features

具有 Angular 特性的带 @Directive() 装饰器的基类

Base classes with @Directive() decorator that use Angular features

请参见不带装饰器的基类部分

See undecorated base classes section

@angular/* npm 软件包中的 esm5fesm5 分发版

esm5 and fesm5 distribution in @angular/* npm packages

esm2015fesm2015 入口点

esm2015 and fesm2015 entrypoints

参见 esm5fesm5

See esm5 and fesm5

TestBed.getTestBed.inject

行为相同,但类型安全。

Same behavior, but type safe.

新删除的已弃用 API

New Removals of Deprecated APIs

Package

API

替代品

Replacement

备注

Notes

@angular/coreRendererRenderer2

迁移指南

Migration guide.

@angular/coreRootRendererRendererFactory2

none

@angular/coreRenderComponentTypeRendererType2

none

@angular/coreWtfScopeFn

none

v8

参见 Web 跟踪框架

See Web Tracing Framework

@angular/corewtfCreateScope

none

v8

参见 Web 跟踪框架

See Web Tracing Framework

@angular/corewtfStartTimeRange

none

v8

参见 Web 跟踪框架

See Web Tracing Framework

@angular/corewtfEndTimeRange

none

v8

参见 Web 跟踪框架

See Web Tracing Framework

@angular/corewtfLeave

none

v8

参见 Web 跟踪框架

See Web Tracing Framework

@angular/commonDeprecatedI18NPipesModuleCommonModule

none

@angular/commonDeprecatedCurrencyPipeCurrencyPipe

none

@angular/commonDeprecatedDatePipeDatePipe

none

@angular/commonDeprecatedDecimalPipeDecimalPipe

none

@angular/commonDeprecatedPercentPipePercentPipe

none

@angular/formsNgFormSelectorWarning

none

@angular/forms

ngForm 元素选择器

ngForm element selector

ng-form 元素选择器

ng-form element selector

none

@angular/service-workerversionedFilesfiles

在 Service Worker 配置文件 ngsw-config.json ,用 files 替换 versionedFiles 。参见 Service Worker 配置

In the service worker configuration file ngsw-config.json, replace versionedFiles with files. See Service Worker Configuration.

Ivy 的特性与兼容性

Ivy features and compatibility

在版本 9 中,Angular Ivy 是默认渲染引擎。如果您还没有听说过 Ivy,则可以在 Angular Ivy 指南中阅读有关它的更多信息。

In Version 9, Angular Ivy is the default rendering engine. If you haven't heard of Ivy, you can read more about it in the Angular Ivy guide.

  • 除其他功能外,Ivy 在模板中引入了更全面的类型检查。有关详细信息,请参见模板类型检查

    Among other features, Ivy introduces more comprehensive type-checking within templates. For details, see Template Type-checking.

  • 关于调试的一般性指南以及与 Ivy 相关的较小更改的列表,请参见 Ivy 兼容性指南

    For general guidance on debugging and a list of minor changes associated with Ivy, see the Ivy compatibility guide.

  • 有关选择性禁用 Ivy 的帮助,参见此处的说明。

    For help with opting out of Ivy, see the instructions here.

版本 9 的自动迁移

Automated Migrations for Version 9

了解 CLI 自动为您处理的迁移:

Read about the migrations the CLI handles for you automatically: