TypeScript · Junior · Pytanie 44 z 75
Czym jest unia ze wspólnym polem-dyskryminatorem?
type Shape =
| { kind: 'circle'; radius: number }
| { kind: 'square'; size: number };- ✓Poprawna odpowiedź: Unią dyskryminowaną: TS zawęża typ według
kindwswitch/if - 2Błędem: w unii nie można używać tych samych nazw właściwości
- 3Przecięciem dwóch obiektów z właściwością
kind
Wyjaśnienie
Sprawdzenie if (shape.kind === 'circle') zawęża typ i wewnątrz dostępne jest shape.radius. To główny sposób modelowania stanów: { status: 'loading' } | { status: 'success'; data } | { status: 'error'; error }.