Можно ли сделать interface extends type в TypeScript

«Можно ли сделать interface extends type в TypeScript» — вопрос из категории TypeScript, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, можно. В TypeScript interface может расширять (extends) type, если этот type представляет собой объектный тип или intersection типов. Это полезно для комбинирования типов и интерфейсов.

Пример:

type Person = {
  name: string;
  age: number;
};

interface Employee extends Person {
  jobTitle: string;
}

const employee: Employee = {
  name: 'John',
  age: 30,
  jobTitle: 'Developer'
};

Ограничения:

  • Нельзя расширять примитивные типы (string, number и т.д.)
  • Нельзя расширять union типы (type A = string | number)
  • Тип должен иметь явную структуру объекта