Podstawy•LEKCJA 16 / 26

Unie dyskryminowane

Kurs TypeScript · Wyjaśnienie, przykłady, oczekiwany wynik i ćwiczenie.

Obiekty w unii mogą mieć wspólne pole rozróżniające, np.

Cel lekcji

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

  1. type Shape = { kind: "circle"; radius: number } |Tworzymy lub aktualizujemy zmienną, pole albo przypisanie.
  2. function area(s: Shape) {Definiujemy funkcję lub metodę, której można użyć później.
  3. return s.kind === "circle" ? Math.PI * s.radius ** 2 : s.side ** 2;Zwracamy wyliczoną wartość do miejsca wywołania funkcji.
Oczekiwany wynik / efektpo uruchomieniu przykładu
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.

To już koniec tej lekcji.

Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.