TypeScript · Senior · Запитання 7 з 75

Навіщо потрібні брендовані (branded) типи?

type UserId = string & { readonly __brand: 'UserId' };

Пояснення

Структурна типізація вважає всі рядки сумісними, і deleteUser(orderId) скомпілюється. Бренд - фіктивна властивість, що існує лише в типах; значення створює функція-конструктор із перевіркою (toUserId(s): UserId). Так імітують номінальну типізацію.

Де почитати

Помилка в запитанні

TypeScript · Senior · запитання 7

Перевірте себе

Пройдіть тест TypeScript · Senior: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест