Sobes.tech
Назад к вопросам
Middle
3

В чём разница между interface и type в TypeScript?

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

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

sobes.tech AI

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

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

Пример:

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

type ID = string | number;

type User = {
  name: string;
  age: number;
};

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