Где можно использовать interface, но нельзя использовать type?

В TypeScript интерфейсы (interface) можно использовать для декларации типов объектов и классов, и они поддерживают декларативное объединение (declaration merging).

Короткий ответ

Что ответить на собеседовании

В TypeScript интерфейсы (interface) можно использовать для декларации типов объектов и классов, и они поддерживают декларативное объединение (declaration merging). Это значит, что если объявить несколько интерфейсов с одинаковым именем, они автоматически объединятся в один.

Подробный разбор

Ответ с пояснениями

В TypeScript интерфейсы (interface) можно использовать для декларации типов объектов и классов, и они поддерживают декларативное объединение (declaration merging). Это значит, что если объявить несколько интерфейсов с одинаковым именем, они автоматически объединятся в один.

Пример:

interface User {
  name: string;
}

interface User {
  age: number;
}

const user: User = { name: "Alice", age: 30 };

Такого поведения у type нет — попытка объявить несколько типов с одним именем приведёт к ошибке.

Итого, interface можно использовать там, где нужно расширять или дополнять типы через декларативное объединение, например, при расширении типов из сторонних библиотек или для декларации API, где интерфейсы могут дополняться в разных местах кода. type не поддерживает такое объединение и подходит для более сложных типов, объединений и пересечений, но не для декларативного расширения.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку