В 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. Это удобно для расширения типов, например, при работе с библиотеками или модулями, где можно добавить новые свойства к существующим интерфейсам.