Sobes.tech
Middle

Ποια είναι η διαφορά μεταξύ interface και type στο TypeScript;

sobes.tech AI

Απάντηση από 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 расширились, но для описания объектов с возможностью расширения интерфейсы часто предпочтительнее.