Проверяет понимание различий между type и interface в TypeScript и возможности их реализации в классах.
Type (псевдоним типа) — это способ задать имя для любого типа данных: примитива, объединения, пересечения или сложной объектной структуры. В отличие от interface, type не создаёт новый именованный тип, а лишь даёт альтернативное имя существующему.
Да, TypeScript позволяет классу реализовывать type, если этот type описывает объектную форму (то есть содержит сигнатуры свойств и методов). Например:
type Animal = {
name: string;
makeSound(): void;
};
class Dog implements Animal {
name: string;
constructor(name: string) {
this.name = name;
}
makeSound(): void {
console.log('Woof!');
}
}Этот код корректен, так как type Animal задаёт контракт, который класс Dog обязуется выполнить.
type ID = string | number нельзя имплементировать, так как класс не может быть одновременно строкой и числом.Используйте type, когда нужно описать объединение, пересечение, кортеж или примитивный псевдоним. Interface лучше подходит для объектных контрактов, которые могут расширяться или объединяться. Для реализации в классе оба подхода работают, но interface чаще применяется в крупных проектах из-за гибкости.
Вывод: type можно имплементировать в классе, если он описывает объектную структуру. Это удобно для простых контрактов, но для сложных и расширяемых систем предпочтительнее interface.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию