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

В чём отличие interface от type в TypeScript?

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

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

sobes.tech AI

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

  • Расширяемость: interface можно расширять (extends) и объединять декларации с одинаковым именем, что удобно для расширения типов в разных частях кода. type не поддерживает декларативное объединение, но можно создавать новые типы через объединение (&) и пересечение (|).

  • Возможности: type более универсален — с его помощью можно описывать не только объекты, но и объединения, пересечения, примитивы, кортежи и т.д. interface предназначен только для описания объектов и классов.

  • Синтаксис: interface более декларативен и читаем, особенно для описания структур данных.

Пример:

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

type UserType = {
  name: string;
  age: number;
} | null;

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