TypeScript · Junior · Запитання 44 з 75
Що таке union зі спільним полем-дискримінатором?
type Shape =
| { kind: 'circle'; radius: number }
| { kind: 'square'; size: number };- ✓Правильна відповідь: Дискриміноване об'єднання: за
kindTS звужує тип уswitch/if - 2Помилка: в union не можна використовувати однакові назви властивостей
- 3Перетин двох об'єктів із властивістю
kind
Пояснення
Перевірка if (shape.kind === 'circle') звужує тип, і всередині доступний shape.radius. Це основний спосіб моделювати стани: { status: 'loading' } | { status: 'success'; data } | { status: 'error'; error }.