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.
Teraz zajmiemy się wykorzystaniem typów w przypadku prob tips.
Swoją drogą, jeżeli wiemy, że tips służą nam do tego, aby upewnić się, że dany
komponent otrzyma konkretne propsy, to tak naprawdę po co nam one, skoro
wykorzystujemy skrypt, który zasadniczo robi to samo?
Cała różnica polega na tym, że TypeScript chroni nas na etapie developmentu.
A jeżeli chodzi o prop tips, one są również wykorzystywane na etapie runtime.
W praktyce rekomendowane jest to, że
jeżeli korzystamy z text skryptu to po prop tips sięgamy tylko w sytuacji, gdy
tworzymy jakąś zewnętrzną bibliotekę i chcemy upewnić się, że np.
osoba, która nie będzie wykorzystywać pages skryptu również będzie miała
zapewnione odpowiednie bezpieczeństwo typów.
Zatem zobaczmy teraz jak to może wyglądać w praktyce.
Na początek proponuję, abyśmy utworzyli sobie dwa komponenty.
Będą to bliźniacze komponenty, przy czym jeden będzie funkcyjny, a drugi klasowe.
Pokazuję to po to, aby w sytuacji, gdy
będziesz miał jeszcze do czynienia z komponentami klasowymi, po prostu aby było
dla Ciebie jasne, w jaki sposób pracować z props.
Zwróć uwagę, że tutaj props podajemy
dokładnie jako właściwość statyczną dla tej klasy.
W przypadku komponentu funkcyjnego, podobnie jak w przypadku Default,
po prostu podajemy je jako właściwość Prototype.
Zatem sytuacja wygląda teraz tak, że mamy
tutaj mnóstwo błędów, więc na początek importujemy sobie tutaj klasę.
Aby pozbyć się tych najprostszych, a następnie musimy zainstalować bibliotekę
Prop Tabs i jednocześnie utworzyć odpowiednie obiekty oraz interface.
Zatem importujemy je tutaj.
I swoją drogą widzę już, że paczka jest
już zainstalowana, więc ten krok możemy po prostu pominąć.
Zatem utwórzmy sobie tutaj nowy obiekt
zawierający poszczególne właściwości naszego komponentu.
Będzie to właściwość title, która będzie wymagana jednocześnie będzie z treningiem,
a więc właściwość duration, która będzie liczbą i nie będziemy jej wymagać.
No i ostatecznie mamy właściwość platform, która będzie tablicą stringów i również
zarówno elementy, jak i sama tablica będzie tutaj wymagana.
No to teraz mamy załatwione już jeden
temat i rzeczywiście nasze komponenty w momencie, gdy spróbujemy je tutaj
wykorzystać, będą oczekiwały tego, aby podać tutaj odpowiednie propsy.
Natomiast na ten moment nie widzimy tutaj
tego błędu, ponieważ właśnie działa na etapie Rampage.
A jeżeli utworzymy sobie interfejs, to
zabezpieczymy ja również na etapie developmentu.
Zatem tutaj sytuacja wygląda tak, że
tworzymy interfejsy i jak zwykle podajemy odpowiednie właściwości oznaczając
właściwość domyślną oraz odpowiednio tablicę stringów.
No i teraz jeżeli już wykorzystujemy nasz komponent, to faktycznie widzimy tutaj, że
wymaga on podania tych wszystkich wymaganych właściwości.
Zatem będziemy tutaj posłuszni i po prostu je dodamy.
No i teraz widzimy, że wszystko jest w porządku, niezależnie od tego, czy
wykorzystamy zarówno pierwszy, jak i drugi komponent.
Natomiast trzeba zwrócić tutaj uwagę na
jedną małą rzecz i nie mam tutaj na myśli dodania metody render.
Chodzi o to, że przykładowo jeżeli sprawimy, że tutaj właściwość tańca będzie
opcjonalna, to jeżeli ją usuniemy z naszego
komponentu, to tak naprawdę na tym etapie nie będziemy mieć tutaj żadnego błędu.
A już jeżeli uruchomimy naszą aplikację, to okaże się, że mamy tutaj błąd.
I teraz powiększy się nieco ekran, aby wszystko było widoczne.
I rzeczywiście otrzymaliśmy tutaj informacja o tym, że brakuje nam tutaj
title ze względu na to, że w przypadku komponentu mówi jest on oznaczony jako
wymagane, a w tej chwili jest ustawione na undefined.
To się oczywiście zgadza, ponieważ zadbaliśmy o to dokładnie w tym miejscu.
Zatem teraz widzisz doskonałą różnicę pomiędzy wykorzystaniem props a pomiędzy
typowanie z wykorzystaniem pay To take chroni nas tutaj na etapie developmentu
oraz ewentualnie budowania naszej aplikacji.
Natomiast props chronią nas w przypadku uruchomienia aplikacji.
No i znowu wracamy do tego, że w przypadku
wykorzystania tej skryptu nie warto do końca korzystać z prop tabs, aczkolwiek
mogą zdarzyć się do tej reguły wyjątki i warto mieć to na uwadze.
Jeżeli chodzi o to by było na tyle.
Dziękuję za uwagę i zapraszam do kolejnej lekcji.