parent
b3d6d500be
commit
398ff1e7e7
|
@ -38,6 +38,7 @@ v9 - v12
|
|||
| `@angular/common` | [`ReflectiveInjector`](#reflectiveinjector) | <!--v8--> v9 |
|
||||
| `@angular/core` | [`CollectionChangeRecord`](#core) | <!--v7--> v9 |
|
||||
| `@angular/core` | [`DefaultIterableDiffer`](#core) | <!--v7--> v9 |
|
||||
| `@angular/core` | [`ModuleWithProviders` without a generic](#moduleWithProviders) | v10 |
|
||||
| `@angular/core` | [`ReflectiveKey`](#core) | <!--v8--> v9 |
|
||||
| `@angular/core` | [`RenderComponentType`](#core) | <!--v7--> v9 |
|
||||
| `@angular/core` | [`ViewEncapsulation.Native`](#core) | v9 |
|
||||
|
@ -56,7 +57,6 @@ v9 - v12
|
|||
|
||||
|
||||
|
||||
|
||||
## Deprecated APIs
|
||||
|
||||
This section contains a complete list all of the currently-deprecated APIs, with details to help you plan your migration to a replacement.
|
||||
|
@ -88,6 +88,8 @@ Tip: In the [API reference section](api) of this doc site, deprecated APIs are i
|
|||
| [`ANALYZE_FOR_ENTRY_COMPONENTS`](api/core/ANALYZE_FOR_ENTRY_COMPONENTS) | none | v9 | See [`ANALYZE_FOR_ENTRY_COMPONENTS`](#entryComponents) |
|
||||
|
||||
|
||||
|
||||
|
||||
{@a testing}
|
||||
### @angular/core/testing
|
||||
|
||||
|
@ -334,6 +336,50 @@ This includes both packages: `@angular/platform-webworker` and
|
|||
### `entryComponents` and `ANALYZE_FOR_ENTRY_COMPONENTS` no longer required
|
||||
Previously, the `entryComponents` array in the `NgModule` definition was used to tell the compiler which components would be created and inserted dynamically. With Ivy, this isn't a requirement anymore and the `entryComponents` array can be removed from existing module declarations. The same applies to the `ANALYZE_FOR_ENTRY_COMPONENTS` injection token.
|
||||
|
||||
{@a moduleWithProviders}
|
||||
### `ModuleWithProviders` type without a generic
|
||||
|
||||
Some Angular libraries, such as `@angular/router` and `@ngrx/store`, implement APIs that return a type called `ModuleWithProviders` (typically via a method named `forRoot()`).
|
||||
This type represents an `NgModule` along with additional providers.
|
||||
Angular version 9 deprecates use of `ModuleWithProviders` without an explicitly generic type, where the generic type refers to the type of the `NgModule`.
|
||||
In a future version of Angular, the generic will no longer be optional.
|
||||
|
||||
|
||||
If you're using the CLI, `ng update` should [migrate your code automatically](guide/migration-module-with-providers).
|
||||
If you're not using the CLI, you can add any missing generic types to your application manually.
|
||||
For example:
|
||||
|
||||
**Before**
|
||||
```ts
|
||||
@NgModule({...})
|
||||
export class MyModule {
|
||||
static forRoot(config: SomeConfig): ModuleWithProviders {
|
||||
return {
|
||||
ngModule: SomeModule,
|
||||
providers: [
|
||||
{provide: SomeConfig, useValue: config}
|
||||
]
|
||||
};
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**After**
|
||||
|
||||
```ts
|
||||
@NgModule({...})
|
||||
export class MyModule {
|
||||
static forRoot(config: SomeConfig): ModuleWithProviders<SomeModule> {
|
||||
return {
|
||||
ngModule: SomeModule,
|
||||
providers: [
|
||||
{provide: SomeConfig, useValue: config }
|
||||
]
|
||||
};
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Angular version 9 schematics
|
||||
|
||||
|
|
|
@ -86,6 +86,9 @@ export interface NgModuleDef<T> {
|
|||
* @param T the module type. In Ivy applications, this must be explicitly
|
||||
* provided.
|
||||
*
|
||||
* Note that using ModuleWithProviders without a generic type is deprecated.
|
||||
* The generic will become required in a future version of Angular.
|
||||
*
|
||||
* @publicApi
|
||||
*/
|
||||
export interface ModuleWithProviders<
|
||||
|
|
Loading…
Reference in New Issue