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

В чем разница между типом и интерфейсом

В TypeScript и тип (type), и интерфейс (interface) позволяют описывать структуры данных, но есть ключевые различия:

  1. Расширение:
    • Интерфейсы поддерживают extends:
      typescript
      interface A { x: number }
      interface B extends A { y: string }
    • Типы используют & (пересечение):
      typescript
      type A = { x: number }
      type B = A & { y: string }
  1. Объединение:

    • Типы поддерживают union (|):
      typescript
      type Status = 'success' | 'error'
    • Интерфейсы не поддерживают union напрямую.
  2. Декларативное слияние:

    • Интерфейсы можно объявлять несколько раз (слияние):
      typescript
      interface User { name: string }
      interface User { age: number }
      // итого: { name: string; age: number }
    • Типы нельзя объявлять повторно.
  3. Производительность:

    • Интерфейсы лучше работают с ошибками, показывая конкретное место проблемы.
    • Типы могут быть сложнее для вывода типов в больших проектах.

Когда использовать:

  • Интерфейсы — для описания форм объектов, классов, API.
  • Типы — для сложных комбинаций, union-типов, utility-типов.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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