declare var angular: angular.IAngularStatic; import { NgModule } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { BrowserModule } from '@angular/platform-browser'; import { UpgradeModule, downgradeComponent } from '@angular/upgrade/static'; import { heroDetail, HeroDetailDirective } from './hero-detail.component'; import { ContainerComponent } from './container.component'; // #docregion heroupgrade @NgModule({ imports: [ BrowserModule, UpgradeModule ], declarations: [ ContainerComponent, HeroDetailDirective ], entryComponents: [ ContainerComponent ] }) export class AppModule { ngDoBootstrap() {} } // #enddocregion heroupgrade angular.module('heroApp', []) .component('heroDetail', heroDetail) .directive( 'myContainer', downgradeComponent({component: ContainerComponent}) as angular.IDirectiveFactory ); platformBrowserDynamic().bootstrapModule(AppModule).then(platformRef => { const upgrade = platformRef.injector.get(UpgradeModule) as UpgradeModule; upgrade.bootstrap(document.body, ['heroApp'], {strictDi: true}); });