TGViewer
Free React For Beginners Free React For Beginners @reactbeginners · 3.04K subscribers
Post #679 4.03K
🔵 Типи vs Інтерфейси в TypeScript

Щоб описати складні типи, в TS ми можемо використовувати дві сутності: типи або інтерфейси. У цьому дописі ми розглянемо їх відмінності та схожості.

Обидва дозволяють створювати повторно використовувані структури для змінних, параметрів функцій, типів повернення, тощо. Наприклад:

type PersonType = {
age: number;
isFemale: boolean;
name: string;
};

interface PersonInterface {
age: number;
isFemale: boolean;
name: string;
}

У багатьох випадках типи та інтерфейси можна використовувати взаємозамінно. Проте є невеликі відмінності, які важливо враховувати:

🔵 Типи можуть містити примітиви або об'єднані типи. Це неможливо з інтерфейсами, з ними ви можете визначати лише об'єкти.

type A = number;
type B = A | string;



🔵 Декілька інтерфейсів з однаковою назвою і в одній області видимості автоматично об'єднуються. Це називається об'єднанням оголошень (declaration merging). Натомість, типи є імутабульними. Декілька типів з однаковою назвою в одній області видимості викличуть помилку.

interface User {
email: string;
}
interface User {
password: string;
}
// no error
const user: User = {
email: 'email',
password: 'password',
};


type User = {
email: string;
};
//error
type User = {
email: string;
};



🔵 Коли ви розширюєте інтерфейс за допомогою extends, TypeScript переконається, що інтерфейс, який ви розширюєте, можна присвоїти вашому розширенню. Якщо ні - виникне помилка, що дуже корисно. Це не відбувається в разі використання типів: тут TypeScript зробить все можливе, щоб об'єднати розширення.

Що ви в основному використовуєте в своєму проекті: типи чи інтерфейси? Чи є які-небудь конвенції, на які ви погодилися з вашою командою?
  • 👍 59
  • ❤ 7
  • 🔥 4
More from @reactbeginners
  1. Sep 29, 2026Як і обіцяв - про БЗВП по свіжих слідах (і заодно про процес). У знайомого злетіло бронюва…
  2. Sep 26, 2026Думаю багатьом буде цікаво щось дізнатися про розробоку в ЗСУ Спробою розповісти трохи тог…
  3. Sep 24, 2026Всім привіт. Давно не бачилися, але до телеграму руки все ніяк не доходили. В лінкедині я…
  4. May 24, 2026Київ, співчуваю. Сам сьогодні в цю ніч був на лукьянівці. Як на мене, найважча ніч за всі.…
  5. Dec 31, 2025З новим Роком. Нехай це буде останній рік війни. А росія нехай отримує те на що заслужила.…
  6. Nov 29, 2025Сподіваюся всі живі. Схоже що це був рекордний наліт. Як бачите - путін не зацікавлений в…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →