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.
Co prawda w ostatnim czasie komponenty
klasowe akcje są już coraz rzadziej wykorzystywane, natomiast nie zmienia to
faktu, że zdecydowanie będziesz się z nimi spotykał.
Zarówno w istniejących projektach, jak i
chociażby w różnego rodzaju tutorialach czy książkach.
Z tego powodu uważam, że nagranie tej lekcji jest kluczowe.
Tym bardziej, że typowanie komponentów
klasowych zdecydowanie różni się od typowania komponentów funkcyjnych i
jednocześnie jest nieco bardziej wymagające.
Zatem zobaczmy o co tutaj dokładnie chodzi.
Zacznijmy od tego, że zdefiniujemy sobie dwa interfejsy.
Jeden będzie opisywał nasze propsy, a drugi stan.
Zarówno jeden, jak i drugi interfejs
wykorzystamy przy definicji naszego komponentu.
I tutaj sytuacja wygląda tak, że po
zaimportowaniu samego komponentu musimy przekazać zarówno props ów jaki typ stanu
do naszego komponentu wykorzystując zapis genetyczny.
No i teraz jeszcze dodatkowo musimy zadbać o to, aby dodać tutaj konstruktor.
Tutaj, jak wiesz również przyjmuję propsy.
Natomiast jak widzisz mamy tutaj błąd i
niestety musimy się powtórzyć przekazując dodatkowo propsy.
Również w tym miejscu podobnie zresztą
takie powtórzenie będzie miało miejsce w przypadku metod live, czyli np.
komponent Dead Update.
W tej sytuacji musimy tutaj odpowiednio
ponownie przekazać typy procesów oraz samego stanu.
Tak naprawdę trudno jest o tym zapomnieć,
ponieważ jeżeli tego nie zrobimy, po prostu otrzymamy tutaj natychmiast błąd.
I swoją drogą, jeżeli już pojawiają Ci się jakieś błędy w tej aspekcie, to
zdecydowanie polecam Ci zacząć od tego, aby przeczytać komunikat błędu lub
ewentualnie skopiować go i wyszukać z pomocą Googla.
W ten sposób zwykle trafimy na wątek
opisujący bardzo podobne sytuację, w której my aktualnie jesteśmy i na tej
podstawie będziemy w stanie znaleźć rozwiązanie.
Ostatecznie jeżeli chodzi o nasz komponent
utworzymy sobie jeszcze tutaj metodę render.
Tutaj ponownie wyświetlimy sobie kawałek kodu HTML, przy czym dodamy tutaj również
przycisk, który będzie reagował na kliknięcia aktualizując nasz bieżący stan.
Z tego powodu, jak widzisz, wykorzystujemy tutaj funkcję set state i w momencie gdy
mamy dodane odpowiednie typy procesów oraz stanu no to jak widzisz tak naprawdę nie
ma tutaj śladu tak długo, dopóki przekazujemy właściwe type.
Bo jeżeli przyjdzie nam go do głowy, aby
przypisać tutaj jakiś ciąg znaków, no to od razu widzimy, że ekspert próbuje na nas
nakrzyczeć mówiąc, że nasze typy się tutaj nie zgadzają.
Zatem tak naprawdę, jeżeli chodzi o
typowanie komponentów klasowych, musisz pamiętać o tym, że musimy tutaj przekazać
typy dla psów oraz stanu i w momencie, gdy np.
nie przekazujemy procesów, możemy tutaj przekazać puste obiekt, a następnie musimy
też zadbać o to, aby powtórzyć wykorzystanie tego typu zarówno w
konstruktorze, jak i w metodach takich jak komponent Bid Update.
Dzięki temu mamy pewność, że wykorzystanie boksów oraz aktualizacja stanu będą
przebiegały pomyślnie i nie będziemy mieli żadnych niespodziewanych błędów.
Jeżeli chodzi o same komponenty klasowe,
to przy okazji default props pokazywałem, że dodajemy tutaj po prostu pola statyczne
do tego, aby ustawić domyślne zawartości procesów.
Przykładowo w naszym przypadku moglibyśmy
tutaj ustawić domyślny status naszego kampera w momencie wczytywania aplikacji.
Analogicznie możemy tutaj ustawić domyślne
wartości dla naszego stanu wykorzystując właściwość State do niej Również musimy
tutaj przekazać typ naszego stanu oraz oczywiście ustawić domyślne wartości.
W momencie gdy to już jest gotowe.
Na temat typowania komponentów kwasowych
wiemy już w zasadzie wszystko, co powinniśmy wiedzieć.
Zatem teraz nie pozostaje mi nic innego, jak zaprosić Cię do kolejnej lekcji.