> Что делает extends в TypeScript и зачем он нужен? (TypeScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: IT-One, TYMY
Стек: TypeScript
> Пример ответа
Ключевое слово extends в TypeScript выполняет две основные функции: наследование классов и ограничение обобщений (generic constraints).
1. Наследование классов - классический механизм ООП. Позволяет одному классу (дочернему) унаследовать свойства и методы другого (родительского). Например:
TYPESCRIPTclass Animal {move() { console.log('Moving'); }}class Dog extends Animal {bark() { console.log('Woof'); }}const dog = new Dog();dog.move(); // Movingdog.bark(); // Woof
2. Ограничение обобщений - более специфичная для TypeScript возможность. Позволяет указать, что тип-параметр должен быть подтипом определённого типа. Это даёт доступ к свойствам ограничивающего типа внутри обобщённой функции/класса:
TYPESCRIPTinterface HasLength {length: number;}function logLength<T extends HasLength>(arg: T): T {console.log(arg.length); // OK, так как T гарантированно имеет lengthreturn arg;}logLength('hello'); // 5logLength([1,2,3]); // 3// logLength(123); // Ошибка: number не имеет length
Зачем нужен extends?
-
Для повторного использования кода через иерархию классов (избегаем дублирования).
-
Для безопасности типов в дженериках - гарантирует, что переданный тип обладает нужными свойствами, предотвращая ошибки во время компиляции.
-
Для полиморфизма - дочерние классы могут переопределять методы родителя, сохраняя единый интерфейс.
Таким образом, extends - это механизм как для классического наследования, так и для статической проверки типов в обобщённом коде.
> Похожие задачи по frontend
Как типизировать объект с разными ключами и значениями в TypeScript?
Как работают type guards в TypeScript
Что такое операторы Pick, Partial, Omit, Required, NonNullable и Exclude в TypeScript
Что такое generics в TypeScript и как они помогают создавать переиспользуемые компоненты?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью