В чём разница между типами (type) и интерфейсами (interface) в TypeScript?

В TypeScript и type, и interface используются для описания типов, но между ними есть отличия:

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

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

В TypeScript и type, и interface используются для описания типов, но между ними есть отличия:

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

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

В TypeScript и type, и interface используются для описания типов, но между ними есть отличия:

  • interface предназначен для описания структуры объектов и поддерживает декларативное расширение (declaration merging). Это удобно для расширения типов в разных частях кода.
  • type более универсален: позволяет создавать алиасы для примитивов, объединений, пересечений и других типов, не только для объектов.

Пример:

interface IUser {
  name: string;
  age: number;
}

type ID = string | number;

type UserWithID = IUser & { id: ID };

Если нужно описать сложные типы с объединениями или пересечениями, лучше использовать type. Для описания объектов и возможности расширения — interface. В последних версиях TypeScript границы между ними стали менее строгими, и выбор часто зависит от стиля и требований проекта.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее