Sobes.tech
Back to questions
Middle+
4

Чем отличается type от interface в TypeScript?

Companies where asked
Банк Ренессанс

Answer from AI

sobes.tech AI

В TypeScript type и interface имеют схожие цели — описывать типы, но есть отличия:

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

Пример:

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

type ID = string | number;

// interface можно расширять
interface IEmployee extends IUser {
  salary: number;
}

// type можно комбинировать
type Employee = IUser & { salary: number };

Также интерфейсы поддерживают декларативное слияние (declaration merging), а типы — нет.

В целом, для описания объектов часто рекомендуют interface, для сложных типов — type.