Sobes.tech
Назад к вопросам
Senior
4

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

Компании, где спрашивали
GPTunnel

Ответ от нейросети

sobes.tech AI

В 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 границы между ними стали менее строгими, и выбор часто зависит от стиля и требований проекта.