Typy unii (ang. union types
) pozwalają na przypisanie zmiennej wielu typów. Można je zdefiniować przy użyciu operatora |
. Natomiast typy przecięcia (ang. intersection types
) łączą kilka typów w jeden, który zawiera właściwości wszystkich typów, używając operatora &
.
Przykład typów unii:
let value: string | number; value = 'Hello'; // OK value = 10; // OK value = true; // Błąd: nie jest typem string ani number
Przykład typów przecięcia:
interface Person { name: string; age: number; } interface Employee { jobTitle: string; } let employee: Person & Employee = { name: 'John', age: 30, jobTitle: 'Developer' }; // 'employee' ma właściwości zarówno z 'Person', jak i 'Employee'
Typy unii są użyteczne, gdy wartość może być jednym z kilku typów, a typy przecięcia przydają się, gdy chcemy połączyć wiele interfejsów lub typów w jeden.