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

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

Основное отличие в возможностях и использовании:

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

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

    • Интерфейсы лучше для объектов/классов
    • Типы для сложных комбинаций, юнион-типов
    typescript
    type Status = 'loading' | 'success' | 'error'

Лучше использовать интерфейсы для публичного API (например, библиотек), так как их проще расширять. Типы - для внутренней логики.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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