Sobes.tech
Middle
32

TypeScriptda turlar (type) va interfeyslar (interface) o'rtasidagi o'xshashlik va farq nima? Qayerda qaysi birini ishlatish kerak?

Qaerda so'ralgan kompaniyalar
UserGate

AIdan javob

sobes.tech AI

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

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

Пример:

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

type ID = string | number;

type UserWithID = IUser & { id: ID };

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