Вопросы на собеседовании фронтендера: TypeScript
Типизация без any, дженерики, utility types, narrowing и типизация стороннего кода. Спрашивают везде, где TypeScript указан в вакансии, причём не «что такое interface», а как кандидат решает реальные задачи типизации.
Уровень — минимальный, с которого вопрос уместен: junior — базовая тема, middle — нужен опыт промышленной разработки, senior — архитектура и компромиссы.
Вопросов в теме: 34. Эталонные ответы и разбор твоего ответа — внутри тренажёра.
Как отвечать на вопросы темы «TypeScript»
Начни с задачи, которую решает механизм, и только потом показывай синтаксис. Полезно сказать, что будет без него: какую ошибку поймает компилятор, а какую — нет. Если знаешь ограничение или место, где типы приходится обходить, скажи об этом сам: это читается как опыт, а не как пробел.
Это схема ответа, а не готовый ответ: формулировка вопроса ничего не стоит, если не можешь объяснить её вслух за две минуты.
Список вопросов темы «TypeScript»
- Чем any отличается от unknown и почему any опасен?junior и вышетеория
Что проверяет: понимание, что типы — это про безопасность границ, а не про синтаксис.
- Что такое сужение типов (narrowing) и как оно работает?junior и вышетеория
Что проверяет: умение писать код без кастов и заглушек as.
- В чём отличие Pick от Omit в TypeScript?junior и вышетеория
Что проверяет: Понимание утилитных типов для выбора и исключения полей
Из записи реального собеседования: Frontend Teamlead Оффер на 400k (07.06.2024)
- Зачем нужен TypeScript?junior и вышетеория
Что проверяет: Понимание назначения статической типизации
Из записи реального собеседования: мок-собеседование на Senior Frontend от менторов сообщества (07.03.2025)
- Какие ключевые особенности есть в TypeScript? Чем отличаются типы и интерфейсы?junior и вышетеория
Что проверяет: Понимание возможностей TypeScript и различий типов и интерфейсов
Из записи реального собеседования: Топ-10 вопросов на Senior Frontend (React) (03.11.2023)
- Какие утилитарные типы TypeScript ты знаешь и для чего они нужны?junior и вышетеория
Что проверяет: Знание встроенных utility-типов и их пользы для переиспользования типов
Из записи реального собеседования: Frontend на 250к (26.04.2025); Frontend на 220к (01.05.2025); Frontend c оффером 350к (13.02.2026)
- Остаётся ли TypeScript-код в бандле после компиляции? Что из TypeScript остаётся в бандле?junior и вышетеория
Что проверяет: Понимание стирания типов и рантайм-сущностей TypeScript
Из записи реального собеседования: мок-собеседование на Senior Frontend от менторов сообщества (07.03.2025)
- Почему as const меняет выводимый тип объекта?junior и вышетеория
Что проверяет: Понимание литеральных типов и влияния as const на вывод типов
Из записи реального собеседования: Frontend на 250к (30.10.2025)
- Почему TypeScript не позволит объявить функцию без возвращаемого значения, если указан тип возврата number?junior и вышетеория
Что проверяет: Понимание статической проверки типов и обязательности возврата значения при объявленном типе
Из записи реального собеседования: Frontend (TS) на 7100€ (14.08.2026)
- Чем класс в TypeScript отличается от класса в JavaScript?junior и вышетеория
Что проверяет: Понимание различий между TS-классом и рантайм-классом, модификаторов доступа и их стирания при компиляции
Из записи реального собеседования: Frontend с оффером на 5000$ (06.04.2026)
- Чем enum отличается от union-типа в TypeScript и что бы ты предпочёл использовать?junior и вышетеория
Что проверяет: Понимание различий между рантайм-сущностями и чисто типовыми конструкциями TypeScript
Из записи реального собеседования: Frontend с оффером на 5000$ (06.04.2026)
- Что такое дженерики в TypeScript и в каких случаях ты их использовал?junior и вышетеория
Что проверяет: Понимание дженериков и умение привести практический пример
Из записи реального собеседования: Frontend на 250к (26.04.2025)
- Что такое перегрузка функций и для чего она нужна?junior и вышетеория
Что проверяет: Понимание перегрузки функций
Из записи реального собеседования: мок-собеседование на Senior Frontend от менторов сообщества (07.03.2025)
- Как можно неточно типизировать в TypeScript? Расскажи про any, unknown и never.junior и вышетеория
- Что такое дженерики? Приведи пример, где без них было бы плохо.middle и вышетеория
Что проверяет: понимание параметризации типов и сохранения связи между входом и выходом.
- В чём разница type и interface?middle и вышетеория
Что проверяет: реальное понимание, а не шпаргалку.
- В чём отличие enum от константного объекта при компиляции?middle и вышетеория
Что проверяет: Понимание рантайм-представления enum и его влияния на бандл
Из записи реального собеседования: Frontend на 250к (30.10.2025)
- Есть ли аналог keyof для значений объекта — как вытащить тип значений?middle и вышетеория
Что проверяет: Умение получать тип значений объекта через индексированный доступ
Из записи реального собеседования: Frontend c оффером 350к (13.02.2026)
- Есть уже реализованная функция на TypeScript, менять её нельзя. Как узнать тип её возвращаемого значения?middle и вышетеория
Что проверяет: Умение извлекать тип возвращаемого значения через ReturnType и typeof
Из записи реального собеседования: Frontend c оффером 350к (13.02.2026); Frontend с оффером на 300к (23.03.2026)
- Зачем нужен utility type и как с его помощью автоматически выводить типы?middle и вышетеория
Что проверяет: Понимание utility types и вывода типов
Из записи реального собеседования: Frontend с оффером на 4000$ (30.03.2026)
- Как в TypeScript описать тип, который принимает только значения ключей объекта?middle и вышелайв-кодинг
Что проверяет: Умение получать union значений объекта через keyof и indexed access
Из записи реального собеседования: Frontend на 250к (30.10.2025)
- Напиши типизацию функции на TypeScript, которая принимает либо строку, либо кортеж из двух чисел, либо число и строку в разном порядке.middle и вышелайв-кодинг
Что проверяет: Умение использовать union-типы и кортежи для точной типизации аргументов
Из записи реального собеседования: Frontend c оффером на 400к (13.04.2026)
- Приходилось ли писать свои утилитарные типы? Приведи пример.middle и вышетеория
Что проверяет: Практический опыт написания собственных типов и дженериков
Из записи реального собеседования: Frontend c оффером 350к (13.02.2026)
- Статическая типизация и строгая типизация — это одно и то же? Приведи пример.middle и вышетеория
Что проверяет: Различение статической и строгой типизации
Из записи реального собеседования: мок-собеседование на Senior Frontend от менторов сообщества (07.03.2025)
- Что такое абстрактный класс и чем он отличается от интерфейса?middle и вышетеория
Что проверяет: Понимание абстрактных классов и интерфейсов в TypeScript
Из записи реального собеседования: Топ-10 вопросов на Senior Frontend (React) (03.11.2023)
- Что такое Zod и для чего он используется?middle и вышетеория
Что проверяет: Понимание валидации данных и сериализации правил
Из записи реального собеседования: Frontend на 350к (30.01.2026)
- TypeScript не работает в рантайме. Как валидировать данные, пришедшие с бэкенда?middle и вышетеория
Что проверяет: Знание способов рантайм-валидации данных
Из записи реального собеседования: мок-собеседование на Senior Frontend от менторов сообщества (07.03.2025)
- Назови минусы TypeScript — про плюсы все знают.middle и вышетеория
- Как переопределить поведение дефолтного модуля, например добавить новый метод в библиотеку, чтобы TypeScript не ругался?seniorтеория
Что проверяет: Знание declaration merging и .d.ts для расширения сторонних модулей
Из записи реального собеседования: Frontend c оффером 350к (13.02.2026)
- Как сделать универсальную утилиту типизации, которая выводит тип результата для разных асинхронных функций?seniorтеория
Что проверяет: Умение писать generic-обёртку с ограничением extends и выводом типа через Awaited<ReturnType<T>>
Из записи реального собеседования: Frontend с оффером на 300к (23.03.2026)
- Как типизировать пропсы, передаваемые в слот, с помощью дженериков в компонентах?seniorтеория
Что проверяет: Умение применять дженерики для типизации слотов
Из записи реального собеседования: Frontend разработчика оффер на 250k (03.11.2024)
- Можно ли назвать перегрузку функций полиморфизмом? Что такое полиморфизм?seniorтеория
Что проверяет: Понимание видов полиморфизма и места перегрузки среди них
Из записи реального собеседования: мок-собеседование на Senior Frontend от менторов сообщества (07.03.2025)
- Что такое declaration merging интерфейсов в TypeScript?seniorтеория
Что проверяет: Знание механизма слияния интерфейсов и его применения
Из записи реального собеседования: Frontend на 250к (30.10.2025)
- Что такое infer в TypeScript?seniorтеория
Что проверяет: Понимание условных типов и извлечения типов через infer
Из записи реального собеседования: Frontend c оффером 350к (13.02.2026)
Проверить себя по этим вопросам
Список вопросов — это чек-лист подготовки, но на собеседовании проверяют другое: умеешь ли ты объяснить это вслух за две минуты. Тренажёр задаёт вопрос голосом, записывает ответ и разбирает его по четырём критериям найма. 15 ответов в месяц бесплатно, без карты.