Встречается на собеседованиях • сегодня

Что происходит при объявлении двух интерфейсов с одинаковыми именами в TypeScript

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

Пример:

typescript
interface User {
  name: string;
}

interface User {
  age: number;
}

// Результат слияния:
// interface User {
//   name: string;
//   age: number;
// }

const user: User = {
  name: 'John',
  age: 30
};

Если попытаться объявить свойства с одинаковыми именами, но разными типами, TypeScript выдаст ошибку:

typescript
interface User {
  name: string;
}

interface User {
  name: number; // Ошибка: Все объявления 'name' должны иметь одинаковый тип
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы