Get Mystery Box with random crypto!

Різниця між Type та Interface в TypeScript? Type - це спосіб | Web Overflow 🇺🇦

Різниця між Type та Interface в TypeScript?

Type - це спосіб створення власного імені для вами ж описаного типу (рекурсія якась ). Це може бути комбінація примітивних типів або ж тип обʼєкту з певними властивостями. Є дві основні операції над типами:
- intersection (перетин) - оператор &, коли типи зливаються в один;
- union (обʼєднання) - оператор |, коли змінна може набувати будь-якого одного з заданих типів.

Interface теж дозволяє створювати власне імʼя, тільки його зазвичай використовують для обʼєктних типів. Єдиною операцією між інтерфейсами є extend (розширення). Унаслідок ви отримуєте всі ті ж властивості, що має базовий інтерфейс, та можете додати нові.

Виходить, що обидва способи досить схожі та мають майже однакові можливості. Так і є, в 95% використання ви можете обрати будь-який з підходів.

Що в них відмінного? Спробуйте створити два інтерфейси з однаковим іменем і подивіться на результат. Код буде без жодної помилки, а в кінці ви отримаєте просто обʼєднання двох оголошень. Тип можна оголошувати тільки один раз.

Особисто я зараз частіше віддаю перевагу саме Type. Поясню чому. По-перше, Type все ж таки має трішки більше можливостей (наприклад, присвоєння примітивів). По-друге, значення інтерфейсу в програмуванні це швидше про методи, а в TypeScript Interface може зберігати і властивості.

Коротко ознайомитись з типами та інтерфейсами в Typescript можна у самому довіднику.

Читати документацію

#interview