Podstawy
1 godz. 31 min · Typescript · Full-stack i Programowanie
Adam GospodarczykTypeScript umożliwia opisanie naszego kodu typami oraz wychwytywanie dotyczących ich błędów na wczesnym etapie developmentu. W efekcie wykorzystanie TypeScript'u w projekcie podnosi jego jakość i zmniejsza ryzyko pomyłek, które mogą być nie wychwycone na etapie testowania lub mogą pojawić się dopiero w środowisku produkcyjnym.
Z pomocą Reacta tworzymy coraz bardziej złożone aplikacje w których ryzyko popełnienia błędów jest wysokie. TypeScript nie tylko je zmniejsza ale również wpływa pozytywnie na tzw. developer experience (doświadczenia programisty) poprzez to, że nasze IDE "wie więcej" na temat kodu który piszemy. A to z kolei przekłada się na lepszą wydajność i komfort pracy.
Przy założeniu że znamy już samego Reacta oraz TypeScript, połączenie tych dwóch umiejętności jest stosunkowo proste. Wystarczy poznać ogólne zasady typowania propsów, komponentów oraz hooków aby z powodzeniem móc wykorzystywać zalety płynące z posiadania typów w naszym kodzie. W tym kursie dowiesz się jak to zrobić, w najszybszy możliwy sposób.
Kurs został przygotowany tak aby na prostych przykładach pokazać Ci w jaki sposób wykorzystywać TypeScript w projektach React.js. Jeżeli szukasz źródła które pozwoli Ci szybko zacząć - jesteś w dobrym miejscu.
Materiał zawiera dobre praktyki i sugestie dotyczące wykorzystania TypeScript'u oraz konfiguracji środowiska pracy (np. IDE) oraz ustawień samego projektu. Jest to wiedza którą możesz wykorzystać również w przypadku pracy z innymi technologiami.
Kurs został przygotowany z myślą o osobach, które znają już React oraz TypeScript i chcą dowiedzieć się w jaki sposób połączyć te umiejętności. Materiał niemal całkowicie pomija informacje na temat mechanizmów Reacta oraz TypeScript'u. Jeżeli potrzebujesz poszerzyć swoją wiedzę na ich temat, zapraszamy Cię do naszych pozostałych kursów.
W tej lekcji przechodzimy do typowania kolejnego Chucka i będzie nim deser.
Zaczniemy od tego, że utworzymy sobie
komponent Counter, który będzie wykorzystywał ten hub do tego, aby za
chwilę modyfikować stan naszego komponentu.
Ten komponent będzie wyświetlał nam
aktualny stan naszego licznika oraz kilka akcji służących do tego, aby dodawać,
odejmować, resetować oraz ustawiać nasz licznik.
Zatem to co musimy zadbać to przygotowanie
naszego DI do sera oraz oczywiście musimy zadbać o jego odpowiednie typy.
Zatem nasza funkcja będzie przyjmować
aktualny stan oraz akcję, którą chcemy na nim wykonać.
I odpowiednio wykorzystując switcha
będziemy przełączać się pomiędzy konkretnymi akcjami.
Pierwszą z nich będzie akcja Reset, która będzie zwracała nam stan początkowy, a
kolejnymi akcjami będzie odpowiednio ustawienia naszego licznika.
Dodawanie i odejmowanie z niego wartości.
No i oczywiście domyślnym zachowaniem tego Redux będzie zwrócenie aktualnego stanu.
Zatem teraz musimy zadbać o dodanie odpowiednich typów.
I tutaj w pierwszej kolejności musimy zadbać o zapisanie obiektu przechowujące
nasz początkowy stan i zrobimy to bezpośrednio w tym miejscu.
Następnie zdefiniujemy sobie interfejsy dla poszczególnych akcji.
Będziemy mieć tutaj po prostu typ reset, a w przypadku ustawiania wartości będziemy
przyjmować typ oraz wartość, którą chcemy ustawić.
Idąc dalej, w przypadku akcji dodawania
odejmowania będziemy przyjmować wyłącznie sam typ akcji.
No i ostatecznie musimy wykorzystać tak utworzone typy do tego, aby stworzyć ich
unie i dzięki temu otrzymamy typ dla naszej akcji.
W ten sposób jeżeli sięgniemy po definicję
typu dla naszego stanu, to będziemy mogli go przypisać tutaj.
A jeżeli chodzi o typy dla naszej akcji możemy je umieścić już tutaj.
No i teraz jeżeli chodzi o naszą funkcję, ona zwraca nasz aktualny stan.
Nasz zaktualizowany stan, więc dodatkowo zaznaczamy to typem.
Po zapisaniu pliku poprawiają nam się literówki.
No i wszystko jest tutaj w porządku.
Jeżeli teraz zobaczymy, to nie ma tutaj
żadnych błędów, a nasz kamper jest gotowy do tego, aby go wykorzystać.
Zatem tak naprawdę jeszcze jeżeli chodzi o
wykorzystanie, to tutaj możemy wykorzystać typ stanu do
tego, aby upewnić się, że dane, które przekazane są tutaj są spójne dla naszego
stanu, a jeżeli oczywiście chcielibyśmy przekazać tutaj dodatkowe propsy, to
musielibyśmy utworzyć po prostu dodatkowy alias typu bądź interfejs.
W każdym razie, jeżeli chodzi o to, co musi zapamiętać w przypadku wykorzystania
user hipster to to aby odpowiednio wykorzystać
interfejsy oraz ich unie do tego, aby stworzyć typ opisujący poszczególne akcje.
Cała reszta w zasadzie się nie różni,
ponieważ opisujemy tutaj typ stanu oraz zwracanej wartości.
Więc tak naprawdę to już doskonale znamy.
Zatem jak widzisz dalej nie ma tutaj jakiś
większych wyzwań, ale oczywiście schody mogą zacząć się z czasem.
Teraz jeżeli chodzi o wykorzystanie typów w tym przypadku to byłoby już na tyle.
Dziękuję Ci za uwagę i zapraszam do kolejnej lekcji.