9 сентября 2026 года вышло стабильное обновление Angular 22.1.6, относящееся к ветке 22.1. Этот релиз направлен на исправление пяти ошибок в компиляторе, диагностике шаблонов, системе внедрения зависимостей, серверной платформе и работе Router. В то же время Angular 22.2.0-next.7, выпущенный одновременно, не включает новых пользовательских изменений.

Angular 22.1.6 получил пять точечных исправлений
Angular 22.1.6 не меняет публичную модель разработки приложения и не добавляет крупных API: официальный changelog перечисляет пять исправлений. Обновление особенно заметно для проектов с компонентными CSS-переменными, сложными @for-шаблонами, embedded views, пользовательской RouteReuseStrategy и серверным рендерингом.
| Компонент | Что исправлено | Практический эффект |
| Compiler | Namespacing для объявлений CSS @property | Зарегистрированные custom properties корректно работают с механизмом изоляции CSS-переменных |
| Compiler CLI | Убрано ложное срабатывание проверки NG8115 | Callable-объекты без параметров можно использовать как значения track без ошибочного предупреждения |
| Core | Исправлено применение SkipSelf в embedded views | Поиск зависимостей больше не пропускает лишние уровни дерева инжекторов |
| Platform Server | Исправлено повреждение sourcemap при подстановке пути Domino | Карты исходников серверных сборок формируются корректнее |
| Router | Сохранена изоляция контекстов отсоединённых деревьев маршрутов | Вложенные маршруты корректнее восстанавливаются после повторного подключения сохранённого route subtree |
В changelog для 22.1.6 не заявлены breaking changes или новые требования к миграции. Это патч-релиз, ориентированный на исправление поведения существующих механизмов.
Компилятор корректнее обрабатывает CSS @property
Angular 22.1.6 исправляет namespacing пользовательских CSS-переменных, объявленных через @property. Эта конструкция CSS позволяет зарегистрировать custom property, определить её синтаксис, наследование и начальное значение.
Angular уже умеет добавлять пространство имён к локальным CSS-переменным компонентов. Проблема заключалась в том, что регистрация через @property не учитывалась тем же механизмом. В результате имя зарегистрированной переменной и имя, которое Angular преобразовывал внутри var(...), могли расходиться.
После обновления компилятор обрабатывает такую регистрацию вместе с обычными обращениями к custom properties:
@property --accent-color {
syntax: "<color>";
inherits: true;
initial-value: rebeccapurple;
}
.card {
color: var(--accent-color);
}Для разработчиков, активно использующих современный CSS внутри компонентных стилей, это устраняет потенциально трудно диагностируемое расхождение между объявлением переменной и её использованием.
Диагностика @for больше не считает callable-объекты ошибкой
Compiler CLI в Angular 22.1.6 уточняет проверку NG8115, связанную с выражением track в блоках @for. Ранее callable-объект мог быть принят за функцию, которую разработчик забыл вызвать.
Проблема проявлялась, например, с сигналами, FieldTree и пользовательскими объектами, которые технически имеют call signature, но используются для отслеживания по идентичности объекта. Проверка видела callable-тип и могла предложить добавить вызов функции, хотя исходный код был корректным.
Теперь диагностическое сообщение формируется только в тех случаях, когда выражение действительно похоже на функцию или метод, ожидающий параметры. Callable-объекты с нулём параметров, используемые как значения track, больше не должны получать ложное предупреждение.
SkipSelf исправлен для embedded views
Изменение в Angular Core затрагивает внедрение зависимостей в embedded views. В 22.1.6 модификатор SkipSelf применяется только к начальному узлу поиска зависимости, а не продолжает влиять на последующее прохождение дерева инжекторов.
Для обычных компонентов это исправление может остаться незаметным. Практическое значение выше в сложных шаблонных структурах, где используются вложенные представления, структурные конструкции и собственные иерархии providers.
Исправление снижает риск ситуации, когда Angular пропускает подходящий provider выше по дереву из-за некорректно распространённой семантики SkipSelf.
Router корректнее восстанавливает сохранённые деревья маршрутов
Одно из наиболее практичных исправлений Angular 22.1.6 относится к RouteReuseStrategy. При отсоединении маршрута Angular сохраняет компонент и связанные с ним дочерние RouterOutlet, чтобы затем повторно использовать уже созданное дерево.
Ранее во время detach дочерние контексты могли очищаться таким образом, что после повторного подключения внутренний outlet и Router фактически работали с разными деревьями контекстов. В сложной вложенной маршрутизации это приводило к ситуации, когда дочерний маршрут после восстановления сохранённого экрана больше не отображался.
Теперь контексты отсоединённого route subtree сохраняются отдельно, а для последующих активаций создаётся новый набор дочерних контекстов. Это особенно актуально для интерфейсов с вкладками, списками, вложенными страницами редактирования и пользовательской стратегией повторного использования маршрутов.
SSR получил исправление sourcemap для Domino
В @angular/platform-server устранена проблема, при которой внутреннее преобразование пути к Domino могло повредить .map-файлы серверной сборки. Причиной было слишком широкое регулярное выражение, применявшееся при замене относительного пути к bundled-версии Domino.
Поскольку операция выполнялась и над сериализованными sourcemap-файлами, выражение могло захватывать больше текста, чем требовалось, включая части sources и sourcesContent. В Angular 22.1.6 шаблон замены сделан более строгим.
Для конечного приложения это прежде всего улучшает отладку SSR-кода: корректная карта исходников повышает вероятность получить нормальную привязку ошибки к исходному TypeScript-коду вместо искажённого или бесполезного stack trace.
Angular 22.2.0-next.7 — без пользовательских изменений
Одновременно с 22.1.6 в npm появилась prerelease-ветка Angular 22.2.0-next.7. Согласно официальному changelog prerelease, непосредственно next.7 не содержит user-facing changes.
При этом выпущенный в тот же день 22.2.0-next.6, который входит в историю этой ветки, содержит ряд более заметных экспериментальных изменений:
- программные API для
ErrorBoundary; - поддержку
@boundaryв Language Service; - возможность получать
Injectorчерез view- и content-query; - новые публичные router resources;
- корректировки определения blocking state при загрузке router resources;
- те же исправления DI, Router, компилятора и SSR, которые вошли в стабильную 22.1.6.
Поэтому 22.2.0-next.7 стоит рассматривать не как отдельный функциональный релиз, а как текущую точку prerelease-ветки 22.2. Для production-проектов ориентиром остаётся стабильная версия 22.1.6.
Стоит ли обновляться до версии 22.1.6
Обновление Angular с версии 22.1 до 22.1.6 для проектов не требует значительных изменений, так как в changelog отсутствуют объявленные критические изменения. Наиболее высокий практический приоритет у команд, которые используют RouteReuseStrategy, SSR, сложную иерархию DI или новые возможности CSS custom properties.
Проверить обновление можно стандартным механизмом Angular CLI:
ng update @angular/core@22.1После установки рекомендуется выполнить маршрутизационные и SSR-тесты, особенно если приложение применяет сохранение route subtree или серверный рендеринг.
Angular 22.2.0-next.7 предназначен прежде всего для тестирования будущей ветки 22.2. Разработчикам, которым нужны экспериментальные ErrorBoundary и router resources, имеет смысл проверять их в отдельном тестовом окружении, но переносить prerelease в production без конкретной необходимости не требуется.