Discriminated Unions
Manchmal muss der Code mit mehreren verschiedenen Typen arbeiten, die unterschiedliche Formen haben. Diskriminierte Unions sind eine Möglichkeit, mit diesen Typen auf typsichere Weise zu arbeiten.
In diesem Beispiel haben wir zwei Schnittstellen: Circle
und Square
. Beide haben eine kind
-Eigenschaft, die ein String-Literal ist. Dies wird als Diskriminante bezeichnet. Die kind
-Eigenschaft bestimmt, welcher Typ ein Wert ist.
Dies ist nützlich, wenn du eine Funktion hast, die mit beiden Typen arbeitet:
Beachte, dass der Typ jetzt auf der Grundlage der Eigenschaft kind
eingegrenzt wird. Sobald TypeScript die Art kennt, kennt es die Form des Objekts und weiss daher, welche Felder verfügbar sind.
Zuletzt aktualisiert