IE11 Angular 2 ошибка "Ожидаемый идентификатор, строка или номер"

Ну, я создал сайт, используя Angular 2. Когда я запускаю команду "ng-serve" и пытаюсь протестировать мой сайт, используя " http://localhost:4200" в Google Chrome и IE11 он работает отлично, но если я создам проект с помощью "ng-build -prod", запустите его в IIS. Сайт по-прежнему работает в Chrome, но IE11 показывает следующие ошибки: Ожидаемый идентификатор, строка или номер

Я просмотрел его и обнаружил, что это, возможно, зарезервированные слова в моих идентификаторах: пары значений. Поэтому я добавил Apostrophes (') вокруг моих ключей. Например, у меня был следующий объект:

user:UserViewModel={
    Username:"",
    Age:0
};
and changed this to:
user:UserViewModel={
    'Username':"",
    'Age':0
};

Также удалены последние запятые в ключах: пары значений и импортированные core.js в polyfills.ts

Ответы

Ответ 1

Основная проблема: IE имеет режим совместимости по умолчанию. И IE 11 имеет некоторые проблемы с режимом совместимости. В соответствии с следующим вопросом ответьте Angular 2/4, не работающий в IE11

Когда я попытался отключить режим совместимости, он отлично работает.

Но обычный пользователь не отключится от режима совместимости. Поэтому я хочу найти хорошее решение для этого.

Затем я нашел следующую форму решения отключить режим совместимости IE с помощью тегов

      <meta http-equiv="X-UA-Compatible" content="IE=edge" />

Ответ 2

Я искал его и обнаружил, что это, возможно, зарезервированные слова в моих идентификаторах: пары значений.

Нет. Это не относится к IE11.

Fix

Скорее всего, вы используете сырые файлы .ts. Вы должны размещать (в тэгах script) вложенные/построенные файлы .js.