«апгрейд» проекта Angular 8 до Angular 13 породил множество ошибок, связанных с синтаксисом и общими правилами.
В прошлом году я работал над проектом, он использовал Angular 8. Я возобновил проект в этом году, теперь я использую Angular 13, чтобы сделать проект более актуальным. Я был ошеломлен количеством выдаваемых ошибок. Многие из кода, который я использовал в ngOnInit, мне пришлось изменить на конструктор, в основном инициализация свойства, выделив FormGroup, теперь мне нужно инициализировать его в конструкторе, иначе я получаю сообщение о том, что он не был инициализирован в конструкторе. Я не могу использовать sysntax someObject["property"], потому что свойство string может не быть свойством someObject. У меня было много других ошибок, связанных с синтаксисом. Что произошло со времен Angular 8. Я не «разработчик Javascript». Я не нахожусь внутри того, что происходит.
Я уверен, что хочу использовать Angular 13, но. 5 версий - это огромный пробел, на который я не жаловался. Верно ли, что с Angular 8 были внесены изменения в правило синтаксиса?
2 ответа
Похоже, во время какого-то обновления был активирован строгий режим Angular .Затем компилятор требует более строгого синтаксиса. Вы можете избавиться от этих ошибок, установив
"strict": false
в
tsconfig.json
.
Но команда Angular рекомендует использовать строгий режим по следующим причинам:
Строгий режим улучшает ремонтопригодность и помогает заранее выявлять ошибки. Кроме того, приложения строгого режима легче анализировать статически, и они могут помочь рефакторингу кода команды ng update более безопасно и точно при обновлении до будущих версий Angular.
Я уверен, что хочу использовать Angular 13, но. 5 версия - это огромный пробел, я не жалуюсь. Правда ли, что с Angular 8 правила синтаксиса изменились?
Краткий ответ: Да.
Учитывая большое количество крупных обновлений, которые вам предстоит пройти, предлагаю воспользоваться официальным руководством по обновлению . Это позволяет вам выполнять необходимые изменения шаг за шагом и решать их одно за другим по мере их возникновения. Я напрямую связал руководство с 8.0 по 13.0, однако предлагаю вам делать это более мелкими шагами (8.0 -> 9.0; 9.0 -> 10.0 и так далее). Это значительно поможет вам точно увидеть, для каких (очевидных) изменений вам нужно настроить свой код.
Если вы хотите более глубокого погружения, вы можете прочитать официальные журналы изменений .