Sobes.tech
Middle

TypeScript-ში interface და type-ს შორის რა განსხვავებაა? რა მოხდება, თუ ორი interface-ს ერთ სახელით გამოვაცხადებთ?

sobes.tech AI

პასუხი AI-სგან

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

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

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

Пример объединения интерфейсов:

interface User {
  name: string;
}

interface User {
  age: number;
}

const user: User = {
  name: 'Alice',
  age: 30
};

Здесь два интерфейса User сливаются в один с двумя свойствами name и age. Если бы это были type, то компилятор выдал бы ошибку о повторном объявлении.