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 pokażę Ci, w jaki sposób dodawać typy w przypadku formularzy.
Zatem w pierwszej kolejności utwórzmy
sobie jakiś prosty formularz, który będzie posiadał dwa pola EM, pole email oraz pole
Name, a następnie oczywiście przycisk Submit.
I teraz wysłanie takiego formularza będzie uruchamiało specjalną akcję,
Zatem proponuję, abyśmy ją sobie teraz zdefiniowali.
Będzie to prosta funkcja, do której
będziemy przekazywać zdarzenie wysłania naszego formularza i będzie to oczywiście
w formie event, do którego przekazujemy typ elementu form.
Wewnątrz tej funkcji będziemy zajmować się obsługą samego formularza i przykładowo na
coś takiego będzie składać się odczytanie wartości pola email.
Musimy zaimportować typ form event bezpośrednio z zbijaka, a następnie
otrzymujemy tutaj błąd informujący nas o tym, że właściwość i mail nie istnieje
wewnątrz typu wewnątrz typu naszego eventu.
Rzeczywiście tak jest, więc musimy w jakiś sposób o to zadbać.
W tym celu utworzymy sobie nowy interfejs.
Niech będzie to filtr, wewnątrz którego umieścimy dwie właściwości.
Pierwszą z nich będzie e-mail up.
To go mam zarówno w pierwszym, jak i w drugim przypadku.
Będziemy tutaj wykorzystywać HTML input element a.
Oczywiście jeżeli mielibyśmy do czynienia np.
z text aria, to analogicznie moglibyśmy to określić w ten sposób.
I teraz mając tak przygotowany interfejs musimy wykorzystać esencję oraz interfejs
typu asercji po to, aby powiedzieć, że nasz event target tak naprawdę posiada
specjalny typ składający się z typu event target oraz interfejsu in Files.
No dobra, to teraz jeszcze.
W ten sposób określiliśmy, że Event Target
jest typu składającego się z typu event Target oraz interfejsu API Filter.
I tutaj jeszcze wykorzystaliśmy operator
typeof do tego, aby pobrać typ Event Target.
W ten sposób uzyskaliśmy odpowiednie połączenie i dzięki temu, jeżeli teraz
wykorzystamy podpowiedzi naszego IDE, to rzeczywiście mamy tutaj dostępne pole,
w przypadku których mamy też dodatkowe informacje dotyczące samego ich typu.
Oczywiście w przypadku formularzy im
bardziej rozbudowany formularz, tym trudniej.
Natomiast ogólna zasada typowania
formularzy sprowadza się właśnie do tego, co właśnie pokazałem.
Czyli w pierwszej kolejności dbamy o to, aby typować handler naszego formularza,
bądź też handler jakiejś akcji, która dzieje się na którymś z elementów, ale
również możemy wykorzystać bardziej zaawansowane techniki do tego, aby ułatwić
sobie pracę, chociażby tak jak w tym przypadku z Event Target.
Przykładowo mogłoby się zdarzyć tak, że do naszego elementu email chcielibyśmy
dorobić jakąś walidację sprawdzającą już podczas wpisywania czy mamy do czynienia z
adresem email, czy jego format jest niepoprawny.
W takiej sytuacji tworzymy prostą funkcję,
której typ ustawimy jako Change event handler, ponieważ jest to zdarzenie
zmiany, a następnie przekażemy do niej HTML input element.
I to oczywiście wynika z faktu, że mamy tutaj input element.
Następnie, jeżeli tylko wykorzystamy
parametr Event podane tutaj w script zinterpretuje jego odpowiedni typ.
No i wewnątrz tej funkcji możemy dokonać odpowiedniej walidacji.
Zatem jak widzisz w przypadku typowania formularzy sprawdza się tutaj w zasadzie
cała wiedza, którą zdobyliśmy na przestrzeni ostatnich lekcji.
Teraz już dziękuję Ci za uwagę i zapraszam Cię do kolejnej lekcji.