Sobes.tech
Back to questions
Middle
3

В чём различие между interface и type в TypeScript? Когда использовать каждый из них?

Companies where asked
Электронные офисные системы

Answer from AI

sobes.tech AI

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

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

Когда использовать:

  • Используйте interface, если нужно описать объектную структуру и планируется расширение или объединение интерфейсов.
  • Используйте type, если нужно описать сложные типы, объединения, пересечения или алиасы для примитивов.

Пример:

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

type ID = string | number;

type UserWithID = User & { id: ID };

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