TypeScript · Senior · Запитання 7 з 75
Навіщо потрібні брендовані (branded) типи?
type UserId = string & { readonly __brand: 'UserId' };- ✓Правильна відповідь: Щоб розрізняти структурно однакові типи, наприклад
UserIdіOrderId - 2Щоб додати властивість
__brandдо всіх рядків у рантаймі - 3Щоб пришвидшити порівняння рядкових типів компілятором
Пояснення
Структурна типізація вважає всі рядки сумісними, і deleteUser(orderId) скомпілюється. Бренд - фіктивна властивість, що існує лише в типах; значення створює функція-конструктор із перевіркою (toUserId(s): UserId). Так імітують номінальну типізацію.