Angular 7 までは、polyfill を使うことで IE11 でも Angular アプリケーションを実行することができました。ただし、Angular 8 では、Angular 7 と同じように polyfill を使う方法では IE11 で動作させることができません。2つの方法がありますので、それぞれ見ていきましょう。また、それぞれの方法に対応するサンプルも用意していますので、ダウンロードして動作を確認することもできます。
方法1
アプリケーションのコンパイルターゲットを es5 に変更します。
Angular 8 では、TypeScript のコンパイルターゲットを es5 にすることで対応することができます。 tsconfig.json の target プロパティに "es5" を指定します。
tsconfig.json
{ "compileOnSave": false, "compilerOptions": { "baseUrl": "./", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, "module": "esnext", "moduleResolution": "node", "importHelpers": true, "target": "es5", "typeRoots": [ "node_modules/@types" ], "lib": [ "es2018", "dom" ] }, "angularCompilerOptions": { "fullTemplateTypeCheck": true, "strictInjectionParameters": true } }
この方法であれば、アプリケーションを "ng serve" で実行することができます。
上記の設定を行ったサンプルです。
方法2
es5 でコンパイルするオプションを用意し、アプリケーション実行時にそのオプションを選択します。
tsconfig.app.json と同じフォルダに、tsconfig-es5.app.json を生成します。
tsconfig-es5.app.json
{ "extends": "./tsconfig.app.json", "compilerOptions": { "target": "es5" } }
angular.json を編集します。13 - 15 行目と 24 - 26 行目を追記します。24 – 26 行目の設定は、"プロジェクト名:build:es5" です。
angular.json
{ ... "projects": { "angular8-ie11-two": { ... "architect": { "build": { ... "configurations": { "production": { ... }, "es5": { "tsConfig": "./tsconfig-es5.app.json" } } }, "serve": { ... "configurations": { "production": { "browserTarget": "angular8-ie11-two:build:production" }, "es5": { "browserTarget": "angular8-ie11-two:build:es5" } } }, ... } } }, ... }
アプリケーションの実行には、次のコマンドを実行します。
ng serve --configuration es5
実行結果

IE11 で Angular アプリケーションを動かすことができました。
上記の設定を行ったサンプルです。