TypeScript · Senior · Pytanie 36 z 75
Dlaczego nie można napisać a.x dla a: { x: string } | { y: number }?
- ✓Poprawna odpowiedź: Dostępne są tylko wspólne właściwości unii; zawęź typ przez
'x' in a - 2Właściwości typów unii są zawsze tylko do odczytu
- 3Trzeba najpierw rzutować
anaany- tak jest zaprojektowane
Wyjaśnienie
Kompilator nie wie, którym członem jest a, a drugi nie ma x. Po if ('x' in a) typ jest zawężony. Alternatywy to wspólny dyskryminator (kind) lub jawne x?: undefined w drugim członie.