This change allows ReflectiveInjector to be tree shaken resulting
in not needed Reflect polyfil and smaller bundles.
Code savings for HelloWorld using Closure:
Reflective: bundle.js:  105,864(34,190 gzip)
    Static: bundle.js:  154,889(33,555 gzip)
                            645( 2%)
BREAKING CHANGE:
`platformXXXX()` no longer accepts providers which depend on reflection.
Specifically the method signature when from `Provider[]` to
`StaticProvider[]`.
Example:
Before:
```
[
  MyClass,
  {provide: ClassA, useClass: SubClassA}
]
```
After:
```
[
  {provide: MyClass, deps: [Dep1,...]},
  {provide: ClassA, useClass: SubClassA, deps: [Dep1,...]}
]
```
NOTE: This only applies to platform creation and providers for the JIT
compiler. It does not apply to `@Compotent` or `@NgModule` provides
declarations.
Benchpress note: Previously Benchpress also supported reflective
provides, which now require static providers.
DEPRECATION:
- `ReflectiveInjector` is now deprecated as it will be remove. Use
  `Injector.create` as a replacement.
closes #18496
		
	
			
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /** @experimental */
 | |
| export declare function downgradeComponent(info: {
 | |
|     component: Type<any>;
 | |
|     /** @experimental */ propagateDigest?: boolean;
 | |
|     /** @deprecated */ inputs?: string[];
 | |
|     /** @deprecated */ outputs?: string[];
 | |
|     /** @deprecated */ selectors?: string[];
 | |
| }): any;
 | |
| 
 | |
| /** @experimental */
 | |
| export declare function downgradeInjectable(token: any): Function;
 | |
| 
 | |
| /** @experimental */
 | |
| export declare function downgradeModule<T>(moduleFactoryOrBootstrapFn: NgModuleFactory<T> | ((extraProviders: StaticProvider[]) => Promise<NgModuleRef<T>>)): string;
 | |
| 
 | |
| /** @stable */
 | |
| export declare function getAngularLib(): any;
 | |
| 
 | |
| /** @stable */
 | |
| export declare function setAngularLib(ng: any): void;
 | |
| 
 | |
| /** @experimental */
 | |
| export declare class UpgradeComponent implements OnInit, OnChanges, DoCheck, OnDestroy {
 | |
|     constructor(name: string, elementRef: ElementRef, injector: Injector);
 | |
|     ngDoCheck(): void;
 | |
|     ngOnChanges(changes: SimpleChanges): void;
 | |
|     ngOnDestroy(): void;
 | |
|     ngOnInit(): void;
 | |
| }
 | |
| 
 | |
| /** @experimental */
 | |
| export declare class UpgradeModule {
 | |
|     $injector: any;
 | |
|     injector: Injector;
 | |
|     ngZone: NgZone;
 | |
|     constructor(
 | |
|         injector: Injector,
 | |
|         ngZone: NgZone);
 | |
|     bootstrap(element: Element, modules?: string[], config?: any): void;
 | |
| }
 | |
| 
 | |
| /** @stable */
 | |
| export declare const VERSION: Version;
 |