TypeScript · Senior · Запитання 36 з 75
Чому для a: { x: string } | { y: number } не можна написати a.x?
- ✓Правильна відповідь: Доступні лише спільні властивості union; звузьте тип через
'x' in a - 2Властивості union-типів завжди доступні лише для читання
- 3Треба спершу звести
aдоany- так задумано
Пояснення
Компілятор не знає, який варіант в a, а в другого x немає. Після if ('x' in a) тип звужено. Альтернатива - спільний дискримінатор (kind) або явні x?: undefined у другому варіанті.