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

Чому для a: { x: string } | { y: number } не можна написати a.x?

Пояснення

Компілятор не знає, який варіант в a, а в другого x немає. Після if ('x' in a) тип звужено. Альтернатива - спільний дискримінатор (kind) або явні x?: undefined у другому варіанті.

Де почитати

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

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

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

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

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