Wpis użytkownika Magiczny_Magik w Programowanie
Magiczny_MagikSpecjalista
5piorunówSztuczka na dziś: operator satisfies pozwala nam zdefiniować oczekiwany typ danych, a następnie zawęzić go na podstawie tego, w jaki sposób jest używany.
Powyższy opis nie jest najlepszej jakości, ale trudno wytłumaczyć coś, co najlepiej prezentuje się w praktyce. Wyobraźmy sobie, że definiujemy drzewo ścieżek w naszej aplikacji. Moglibyśmy je zobrazować poprzez: type Routes = Record<string, { path: string; children?: Routes }>. Niestety, taka definicja umożliwia odwoływanie się do nieistniejących ścieżek.
Problem można obejść stosując casting przez operator as, ale wtedy będzie można dodać do naszego drzewa wpisy, które nie będą spełniać warunków postawionych przez nasz typ.
Najlepszym wyjściem jest użycie operatora satisfies, który prawidłowo zawęzi nasz typ i nie pozwoli na odwoływanie się do nieistniejących ścieżek, a także będzie trzymał pieczę nad tym, aby każdy wpis spełniał postawione przez typ warunki.
Komentarze (2)
@Magiczny_Magik eh tyle razy robiłem podejście do tego typescriptu i łeb mi puchnie
@Magiczny_Magik Witam tego całkiem śnieżnego dnia! Mam nadzieję, że będzie on lepszy niż poprzedni! (✿❦ ͜ʖ ❦)