> Что такое дженерики в TypeScript и для чего они используются (TypeScript)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: Иннотех, Альфа-банк, Soft_Media_Group, ООО Премиум ИТ Солюшен, Kodix, IT-One, GetMatch, Арго, TYMY, LoyaltyLabs, SmartWay
Стек: TypeScript
> Пример ответа
Дженерики (обобщённые типы) в TypeScript - это механизм, позволяющий создавать компоненты (функции, классы, интерфейсы), которые работают с различными типами данных, сохраняя при этом строгую типизацию. Вместо того чтобы указывать конкретный тип, используется параметр типа (например, T), который подставляется при вызове.
Основные цели использования:
-
Типобезопасность без потери гибкости - функция может принимать и возвращать данные любого типа, но компилятор проверяет соответствие типов на этапе вызова.
-
Повторное использование кода - один и тот же компонент работает с разными типами, не требуя дублирования.
-
Сохранение информации о типе - в отличие от
any, дженерики не стирают тип, а фиксируют его.
Пример:
TYPESCRIPTfunction firstElement<T>(arr: T[]): T | undefined {return arr[0];}const num = firstElement([1, 2, 3]); // тип numberconst str = firstElement(['a', 'b']); // тип string
Здесь T - это placeholder, который заменяется на реальный тип при вызове. Если передать массив чисел, T станет number, и возвращаемое значение будет number | undefined.
Где применяется:
-
Типизированные коллекции (например,
Array<T>). -
API-клиенты (обобщённые ответы сервера).
-
Паттерны вроде "фабрика" или "репозиторий".
-
Создание утилит для работы с промисами, событиями и т.д.
Дженерики ключевая фича TypeScript, которая делает код одновременно безопасным и универсальным.
> Похожие задачи по frontend
В чем отличие Type и Enum в TypeScript и как они выглядят после компиляции
В чем разница между типами void и never в TypeScript
Что происходит при объединении полей с конкретными значениями в TypeScript?
Как типизировать компонент и пропсы в TypeScript?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью