Что могут спросить на собеседовании по теории TS?
Собрал самые популярные вопросы с наших собеседований, со ссылкой на официальную документацию по каждому пункту.
Основы
▸ Что такое 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 Reference
React + TypeScript
▸ Как типизировать React-компонент и его props? → React + TypeScript
▸ Как типизировать children в React? → React TS Cheatsheet
Это была именно теория, конечно нередко встречается именно практический блок с задачами.
Подготовиться к нему очень помогает написание своих утилитарных типов, а также прорешивание типовых задач с собеседований.
Если тему задач по TS тоже стоит раскрыть подробнее, ставьте 👍 и мы соберем все что у нас встречалось на собеседованиях в отдельный пост 🫡
По любым вопросам, если что, отвечаю тут) @codepunks_bro
Собрал самые популярные вопросы с наших собеседований, со ссылкой на официальную документацию по каждому пункту.
Я в целом стараюсь придерживаться формулировок на собеседованиях исходя официальной документации, это решает очень много "холиварных" вопросов.
Основы
▸ Что такое 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 Reference
React + TypeScript
▸ Как типизировать React-компонент и его props? → React + TypeScript
▸ Как типизировать children в React? → React TS Cheatsheet
Это была именно теория, конечно нередко встречается именно практический блок с задачами.
Подготовиться к нему очень помогает написание своих утилитарных типов, а также прорешивание типовых задач с собеседований.
Если тему задач по TS тоже стоит раскрыть подробнее, ставьте 👍 и мы соберем все что у нас встречалось на собеседованиях в отдельный пост 🫡
По любым вопросам, если что, отвечаю тут) @codepunks_bro