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.
Zbliżamy się do momentu, w którym będziemy kończyć typowanie klapsów, natomiast
musimy zwrócić jeszcze dodatkową uwagę na strzelbę.
Jak już zdążyliśmy zauważyć, potrafią
stworzyć trochę problemów ze względu na to, że jeżeli utworzymy sobie komponent
funkcyjny, a następnie skorzystamy z typu akcji, to jak powiedziałem wcześniej
dojdziemy do sytuacji, że jeżeli wykorzystamy teraz ten komponent map,
okaże się, że możemy przekazać tutaj dowolny typ komponentu.
Czyli byłem i nie będzie z tym najmniejszego problemu.
Natomiast problem tutaj istnieje, ponieważ raczej nie chcemy oddawać kontroli nad
typami, chyba że chcemy skorzystać z impedancji typów.
W tym przypadku dochodzi do nie jawnego
przypisania typów i z tego powodu możemy chcieć np.
zabezpieczyć się przed tym, aby do naszego komponentu nie można było przekazać.
Ewentualnie może zdarzyć się tak, że np.
będziemy chcieli, aby posiadało określony typ, np.
typ string. W takiej sytuacji w momencie gdy
przekażemy nasz interfejs tutaj do genetyka.
No to pojawi nam się błąd, ponieważ tutaj mamy element HTML, a nie string.
Dopiero w tym momencie wszystko zaczyna być tutaj w porządku.
Natomiast co w sytuacji, jeżeli
chcielibyśmy przekazać tutaj zamiast stringa również number?
Czyli moglibyśmy wykorzystać unie typów i połączyć je w ten sposób.
I to również byłoby ok, ponieważ jeżeli
przekażę tutaj jakąś liczbę, również nie otrzymamy żadnego błędu.
Natomiast alternatywnie mógłbym skorzystać tutaj z typu react text.
Jest on jak widzisz zaimportowany
bezpośrednio z biblioteki VI i dodatkowo oznacza dokładnie to co zapisałem przed
chwilą, czyli jest to unia typów String lub Number.
Idąc dalej może się okazać, że faktycznie
będę chciał umieścić tutaj element HTML albo tekst, albo liczbę.
W takiej sytuacji, jeżeli umieścimy tutaj
div zawierający ciąg znaków, no to oczywiście mamy błąd.
Natomiast wystarczy, że skorzystamy z typu react element i w takiej sytuacji możemy
przekazać element HTML, ale już jeżeli przekażemy np.
ciąg znaków, to niestety pojawi się błąd.
No to w tym momencie możemy iść dalej i znowu wykorzystać w tym przypadku chwilę.
W momencie, gdy importujemy ten typ, okaże się, że mamy tutaj
do dyspozycji albo wspomniany wcześniej jak ten element, czyli dowolny element G,
cx lub alternatywnie jak tekst, czyli ciąg znaków bądź liczbę.
Zatem w tym momencie nic nie stoi na przeszkodzie, abyśmy przekazali tutaj ciąg
znaków, liczbę bądź też dowolny element HTML.
Natomiast jeżeli zajdzie tutaj sytuacja,
że przekazaliśmy tutaj wartość NULL, to niestety będziemy mieć problem.
Może zdarzyć się tak, że będziemy tego oczekiwać.
W związku z tym moglibyśmy tutaj dodać
znowu unię typów lub ewentualnie skorzystać z typu react node.
Zatem jeżeli importujemy teraz ten typ, okaże się, że możemy tutaj umieścić albo
jak site ewentualnie wartości logiczne null bądź undefined.
No i tutaj mamy jeszcze jak portal.
W każdym razie nie wiem czy zauważyłeś.
Natomiast mamy następujące zasady.
Jeżeli chodzi o połączenie typu string oraz number wykorzystujemy React.
Jeżeli chodzi o połączenie react element
oraz jak tekst to wykorzystujemy do jak height.
A jeżeli chcemy połączyć wszystkie poniższe i jeszcze dodać do nich wartości
logiczne null lub undefined wykorzystujemy je jak node.
I tak naprawdę w kontekście ar jak czas.
To jest dokładnie to, co powinieneś zapamiętać.
No i ewentualnie jeżeli korzystamy z
function component w ten sposób, to musimy pamiętać, że definicja typów jest dodawana
tutaj niejawnie i możemy ją po prostu napisać.
Jeżeli chodzi o ten temat to byłoby już na tyle.
Dziękuję Ci za uwagę i zapraszam do kolejnej lekcji.