Весной стартует сезон найма, успей отхватить свой оффер!

Отличия type и interface в TypeScript

В TypeScript существуют два способа описания типов: type и interface.

Interface

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

Пример использования interface:

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

interface Employee extends Person {
  position: string;
}

const employee: Employee = {
  name: "John",
  age: 30,
  position: "Developer"
};

interface позволяет использовать ключевое слово extends для расширения других интерфейсов. Это делает его удобным для работы с объектно-ориентированным подходом.

Type

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

Пример использования type:

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

type Employee = Person & {
  position: string;
};

const employee: Employee = {
  name: "John",
  age: 30,
  position: "Developer"
};

Когда использовать interface или type?

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