Вопросы на собеседовании по Angular
Автор: Aaron Cao · Обновлено

Сначала ждите вопросов про change detection: что запускает проверку, что меняет OnPush, и как сюда вписываются signals. Затем dependency injection, выбор оператора RxJS, и очистка подписок. В большинстве процессов добавляется практическое задание вживую, обычно поиск с автодополнением, построенный на service, debounceTime, и switchMap.
Какие концепции Angular спрашивают чаще всего?
Поверхность API Angular велика, и опубликованные списки вопросов трактуют каждый декоратор как одинаково вероятный к появлению. Это не так. В этом разделе рассмотрены области, которые реально решают исход большинства раундов, чтобы ваша практика соответствовала реальному распределению. Доминируют четыре кластера:
- Change detection: что запускает проверку, как Zone.js патчит асинхронные API, что меняет
OnPush, и как signals позволяют Angular пропускать работу. - Dependency injection: иерархические инжекторы,
providedIn, токены инъекции, и функцияinject()вместо параметров конструктора. - RxJS: observable против promise, выбор правильного оператора, и очистка подписок перед уничтожением компонента.
- Архитектура компонентов: standalone-компоненты, input и output, проекция контента, и хуки жизненного цикла.
Осведомлённость о версиях здесь важнее, чем в большинстве раундов по другим фреймворкам, потому что Angular сменил направление. Standalone-компоненты, встроенные блоки управления потоком @if и @for, отложенные представления, и signals — всё это появилось в последних мажорных версиях, поэтому интервьюеры часто спрашивают, что вы написали бы сегодня, в сравнении с тем, что использует более старая кодовая база. Знание обоих подходов, и объяснение, почему фреймворк изменился, производит лучшее впечатление, чем выбор одной стороны.
Насколько глубоко идут вопросы про RxJS и signals?
Глубже, чем названия операторов. Вопрос RxJS, который разделяет уровни, — это какой оператор уплощения подходит: switchMap отменяет предыдущий внутренний запрос и подходит для автодополнения, mergeMap выполняет всё параллельно, concatMap сохраняет порядок, а exhaustMap игнорирует новые события, пока одно ещё выполняется, поэтому он подходит для кнопки отправки. Затем интервьюеры задают вопрос про утечку: что происходит с ручной подпиской при уничтожении компонента, и почему async pipe или takeUntilDestroyed устраняют эту проблему.
Вопросы про signals более новые и обычно начинаются с мотивации, а не с API. Ожидайте объяснить, что такое signal, как computed выводит значение из него, для чего нужен effect, и почему signals дают Angular более тонкий способ узнать, что изменилось, вместо повторной проверки всего дерева компонентов. Сильный ответ связывает обе темы: signals и OnPush оба сокращают работу change detection, но signals делают это, отслеживая чтения, а не сужая момент запуска проверки.
Интервьюеры не ожидают, что вы уже выпустили в продакшен каждую новую функцию. Они ожидают, что вы скажете, в какой версии работали последний раз, и чётко порассуждаете об остальном.
Какие практические задания по кодингу вживую стоит ожидать?
Большинство процессов по Angular включают создание чего-то небольшого на глазах у интервьюера. Повторяющиеся задания стабильны от компании к компании:
- Вызвать API из service и отрендерить результат с помощью async pipe.
- Построить поиск с автодополнением с помощью
debounceTime,distinctUntilChanged, иswitchMap. - Написать реактивную форму с кастомным валидатором и видимыми состояниями ошибок.
- Передать данные между родительским и дочерним компонентом, затем поднять их в service.
- Добавить маршрут с лениво загружаемым компонентом и guard.
Например, фронтенд-инженер, проходящий собеседование на продуктовую роль среднего уровня, может построить автодополнение, а затем получить вопросы о том, что происходит, когда ответы приходят не по порядку, как показать состояние загрузки, и что должно происходить, когда пользователь очищает поле ввода. Именно эти расширения решают исход раунда, поэтому тренируйте уточняющие вопросы, а не только счастливый путь. Соседние наборы, с которых раунды по Angular всё ещё начинаются, включая основы чистого JavaScript и TypeScript, находятся в центре банков вопросов.
Как тренироваться, чтобы это перенеслось на реальный раунд?
Чтение списка вопросов формирует узнавание, а не припоминание, а раунд проверяет припоминание, пока кто-то наблюдает. Решение — повторения в реальной форме раунда: строить стандартные задания с нуля из пустого проекта, проговаривать вслух решения по change detection и подпискам во время печати, и справляться с прерываниями, не теряя нить. Проходить весь набор как устную репетицию, по одному вопросу с уточнениями, — вот для чего нужна тренировка на симулированном собеседовании.
Стоит прямо озвучить одно ограничение: живые раунды по Angular почти всегда проходят в общем редакторе или с видимым экраном, и всё на этом экране видно интервьюеру. Ассистенту место в подготовке и в раундах, ведомых разговором, а не на общем экране. Какие форматы что разрешают, описано в типах собеседований.
Частые вопросы
Нужно ли мне всё ещё знать NgModules?
AngularJS — это то же самое, что Angular?
Сколько RxJS мне нужно, если команда использует signals?
Спрашивают ли интервьюеры про тестирование?
О скольких версиях Angular я должен уметь рассуждать?
Похожие вопросы
- Каких вопросов о Databricks ожидать на собеседовании?
- Каких вопросов по .NET ждать на собеседовании?
- Каких вопросов ожидать на собеседовании инженера по качеству?
- Каких вопросов ожидать на квант-интервью?
- Каких вопросов по Snowflake ожидать на собеседовании?
- Каких вопросов ожидать на собеседовании учителя?