Если есть два интерфейса с одинаковым именем, всегда ли они сольются без ошибок? Какие бывают исключения?

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

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

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

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

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

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

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

Например:

interface User {
  name: string;
}

interface User {
  age: number;
}

const user: User = {
  name: "Иван",
  age: 30
};

В итоге интерфейс User будет содержать и name, и age. Это удобно для расширения типов, например, при работе с библиотеками или модулями, где можно добавить новые свойства к существующим интерфейсам.

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

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

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

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