TypeScript · Junior · Frage 44 von 75
Was ist eine Union mit einem gemeinsamen Diskriminanten-Feld?
type Shape =
| { kind: 'circle'; radius: number }
| { kind: 'square'; size: number };- 1Ein Fehler: in einer Union darf sich kein Eigenschaftsname wiederholen
- 2Eine Discriminated Union: TS grenzt sie über
kindein - 3Eine Intersection zweier Objekte mit einer Eigenschaft
kind
Antwort zeigen
Richtige Antwort: Eine Discriminated Union: TS grenzt sie über kind ein
Erklärung
Die Prüfung if (shape.kind === 'circle') grenzt den Typ ein, und darin ist shape.radius verfügbar. Das ist der wichtigste Weg, Zustände zu modellieren: { status: 'loading' } | { status: 'success'; data } | { status: 'error'; error }.