Можно ли реализовать Angular guard обычной функцией, а не классом или сервисом?

Да, Angular поддерживает функциональные guards, например CanActivateFn; зависимости можно получить через inject в контексте вызова guard.

Короткий ответ

Что ответить на собеседовании

Да, Angular поддерживает функциональные guards, например CanActivateFn; зависимости можно получить через inject в контексте вызова guard.

Подробный разбор

Ответ с пояснениями

Да, Angular поддерживает функциональные guards, например CanActivateFn; зависимости можно получить через inject в контексте вызова guard.

Guard возвращает решение синхронно, через Promise или Observable. Для перенаправления лучше вернуть UrlTree или RedirectCommand, а не запускать отдельную навигацию после false. Клиентская проверка нужна для UX и не заменяет контроль доступа на backend.

Источник: angular.dev.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее