Unie dyskryminowane
Kurs TypeScript · Wyjaśnienie, przykłady, oczekiwany wynik i ćwiczenie.
Obiekty w unii mogą mieć wspólne pole rozróżniające, np.
Poznać zagadnienie „Unie dyskryminowane”, zrozumieć przykład i umieć zastosować podobny zapis we własnym programie.
Wyjaśnienie krok po kroku
kind. Po sprawdzeniu tego pola TypeScript wie, które właściwości są dostępne.
Najpierw przeanalizuj kod bez uruchamiania. Zwróć uwagę, jakie dane wykorzystuje program, co z nimi robi i skąd bierze się wynik pokazany pod przykładem.
Praktyczny przykład
Gdzie zobaczysz efekt: Po kompilacji i wykonaniu JavaScript
type Shape = { kind: "circle"; radius: number } |
{ kind: "square"; side: number };
function area(s: Shape) {
return s.kind === "circle" ? Math.PI * s.radius ** 2 : s.side ** 2;
}
console.log(area({ kind: "square", side: 3 }));
Przeczytaj kod linijka po linijce
type Shape = { kind: "circle"; radius: number } |Tworzymy lub aktualizujemy zmienną, pole albo przypisanie.function area(s: Shape) {Definiujemy funkcję lub metodę, której można użyć później.return s.kind === "circle" ? Math.PI * s.radius ** 2 : s.side ** 2;Zwracamy wyliczoną wartość do miejsca wywołania funkcji.
9
Jak utrwalić tę umiejętność?
Przepisz kod samodzielnie. Następnie zmień jedną wartość lub jedną instrukcję i spróbuj przewidzieć efekt. Dopiero potem uruchom zmienioną wersję. Jeśli wynik jest inny niż oczekiwany, porównaj kolejne linie.
Spróbuj samodzielnie
Dodaj trzeci wariant kształtu: prostokąt.
Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.