Собрал самые популярные вопросы с наших собеседований, со ссылкой на официальную документацию по каждому пункту.
Я в целом стараюсь придерживаться формулировок на собеседованиях исходя официальной документации, это решает очень много "холиварных" вопросов.
Основы
▸ Что такое TypeScript и зачем он нужен? → TypeScript с нуля
▸ Чем TypeScript отличается от JavaScript? → TS за 5 минут
▸ Что такое статическая типизация? → Базовые типы
▸ Какие базовые типы есть в TypeScript? → Everyday Types
▸ Что такое вывод типов (type inference)? → Type Inference
Специальные типы
▸ В чём разница между
any и unknown? → unknown в функциях▸ Когда использовать тип
never? → The never type▸ Что такое
void и когда он нужен? → voidСоставные типы
▸ Что такое union types? → Union Types
▸ Что такое intersection types? → Intersection Types
▸ Что такое литеральные типы? → Literal Types
▸ Чем enum отличается от union литералов? → Enums
▸ Что такое кортежи (tuple types)? → Tuple Types
Объекты и интерфейсы
▸ В чём разница между
type и interface? → type vs interface▸ Как объявлять необязательные и
readonly свойства? → Optional & Readonly▸ Что такое индексные сигнатуры? → Index Signatures
Сужение типов
▸ Что такое type narrowing? → Narrowing
▸ Что такое type guards и assertion functions? → Type Predicates
▸ Что такое discriminated unions? → Discriminated Unions
Операторы типов
▸ Что делает оператор
keyof? → keyof Type Operator▸ Чем отличается
typeof в типах от typeof в JS? → typeof Type Operator▸ Что такое
as const? → Type Assertions▸ Для чего нужен оператор
satisfies? → satisfies в TS 4.9Дженерики и продвинутые типы
▸ Что такое дженерики и зачем они нужны? → Generics
▸ Как ограничивать дженерики через
extends? → Generic Constraints▸ Что такое параметры дженериков по умолчанию? → Default Type Parameters
▸ Что такое условные типы? → Conditional Types
▸ Как работает
infer в условных типах? → Inferring with infer▸ Что такое mapped types? → Mapped Types
▸ Какие utility types самые полезные? → Utility Types
Функции и классы
▸ Как описывать тип функции? → Functions
▸ Что такое перегрузка функций? → Function Overloads
▸ Как типизировать
this в функции? → Declaring this▸ Какие возможности типизации есть у классов? → Classes
▸ Что такое абстрактные классы и
implements? → Abstract Classes▸ Что такое декораторы в TypeScript? → Decorators
Конфигурация и модули
▸ Как устроены модули и импорты? → Modules
▸ Ключевые опции
tsconfig.json → TSConfig ReferenceReact + TypeScript
▸ Как типизировать React-компонент и его props? → React + TypeScript
▸ Как типизировать
children в React? → React TS CheatsheetЭто была именно теория, конечно нередко встречается именно практический блок с задачами.
Подготовиться к нему очень помогает написание своих утилитарных типов, а также прорешивание типовых задач с собеседований.
Если тему задач по TS тоже стоит раскрыть подробнее, ставьте 👍 и мы соберем все что у нас встречалось на собеседованиях в отдельный пост 🫡
По любым вопросам, если что, отвечаю тут) @codepunks_bro
