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 przyjrzymy się nieco bliżej
temu, w jaki sposób ja sam podchodzę do konfiguracji projektu React oraz Tabs
build, ale i nie tylko oraz zahaczymy również o konfigurację samego IDE.
Jeżeli chodzi o sam plik konfiguracyjny TypeScript, to oczywiście jego
konfiguracja będzie różnić się w zależności od projektu, ale dobra
wiadomość jest taka, że zwykle zaglądamy do niego dość rzadko.
Oczywiście zdarzają się tutaj wyjątki, ale to w sumie jak wszędzie.
Jeżeli chodzi o samą konfigurację, którą
widzimy tutaj, to tak jak powiedziałem w jednej z poprzednich lekcji, mamy tutaj
podstawową konfigurację, która z pewnością sprawdzi się w większości przypadków.
Zobaczmy więc, jakie mamy opcje
specyficzne dla samego projektu, ale zresztą i nie tylko.
Przede wszystkim opcja Allow jest pozwala nam na posiadanie plików z zastrzeżeniem,
że jest w naszym projekcie i wtedy nie otrzymujemy żadnych błędów.
Alternatywnie, tak jak podpowiada nam edytor, możemy włączyć opcję Check jazz,
aby otrzymywać błędy również pochodzące z tych plików.
Następnie mamy opcję Skip lib check ustawioną na todo, która sprawia, że pliki
deklaracji typów nie będą tutaj weryfikowane.
Jest to pomocne chociażby z pracą z zewnętrznymi plikami deklaracji typów.
Ze względu na to, że nie chcemy uwzględniać całej ich zawartości, tylko
faktycznie kod, który rzeczywiście jest wykorzystywany przez naszą aplikację.
Następnie mamy dwie opcje dotyczące pracy
z modułami oraz tego, w jaki sposób możemy dokonywać importów.
Natomiast nie będziemy się tutaj w to
zagłębiać, ale nie będziemy się tutaj w to zagłębiać.
Tym bardziej, że opisy tych opcji są po prostu bardzo jasne.
Następnie mamy strict ustawiony tutaj na
TODO, natomiast zaznaczam, że na początku możemy chcieć go wyłączyć, ale naszym
celem powinno być to, żeby on był zawsze włączony.
Oczywiście znowu to zależy od projektu i od naszych preferencji.
Natomiast ja osobiście praktycznie w
każdym projekcie wykorzystuje opcję script.
Następnie mamy opcję dotyczącą spójności w
importowanych nazwach plików i tutaj również warto ustawić.
Ponadto, aczkolwiek w moich oczach jest to
po prostu mały szczegół, który swoją drogą warto wykorzystać.
Jeżeli chodzi o te kolejne opcje, to są
one w zasadzie dość standardowe, więc nie będziemy poświęcać na nie uwagi.
Natomiast chciałbym zwrócić jeszcze uwagę
na no mid ustawione na TODO, ponieważ tak jak już powiedziałem, w momencie gdy
korzystamy z Kryję wtedy jak tam chcemy, chcemy aby za generowanie naszej aplikacji
odpowiadał web pack, a nie sam kompilator TypeScript.
No i ostatecznie mamy jeszcze opcję GPX ustawioną na GFX właśnie po to, aby
obsługiwać tą specyficzną składnie React a.
W tym momencie.
Jeżeli chodzi o samą konfigurację, to ja jeszcze odsyłam Cię do tego
repozytorium, do którego link umieszczam w zasobach do tej lekcji Zachęcam Cię do
jego lektury ze względu na to, że znajdziesz tutaj wiele różnych wskazówek,
które mogą Ci się przydać w Twoim projekcie.
Tymczasem możesz potraktować to jako bonus, ale pokażę Ci jeszcze kilka innych
rzeczy, które konfiguruje przy praktycznie każdym projekcie, w jakim pracuje.
Mianowicie chodzi o wykorzystanie sprintu oraz Pitera.
I tutaj jeżeli chodzi o samą konfigurację
tych narzędzi tak naprawdę znowu zostawiam Ci dużą dowolność.
Natomiast ja sam zwykle zaczynam od takiej podstawowej konfiguracji, którą właśnie Ci
pokażę, a potem ewentualnie dostosowuję ją do specyfiki mojego projektu.
Zatem pierwszym krokiem będzie to, aby zainstalować sam s line oraz kilka
dodatkowych paczek dotyczących samego TypeScript.
To dzięki temu będziemy w stanie utworzyć
plik konfiguracyjny, przez który znowu za chwilę przejdziemy, a potem do.
Instalujemy jeszcze Twittera.
W porządku, zależności zostały
zainstalowane, więc teraz w głównym katalogu utworzymy sobie plik
konfiguracyjny Saint James, w którym umieścimy naszą konfigurację.
Ja jeszcze tylko zadbam o to, aby sformatować odpowiednio ten kod.
No i zobaczmy co my tutaj właściwie mamy.
Tak jak widzisz, jest to dość podstawowa
konfiguracja pochodząca z jakiejś dokumentacji bądź artykułu, natomiast
jednocześnie jest dość dobrą podstawą do tego, aby potem ją sobie rozszerzać.
Idąc dalej będziemy musieli zainstalować dodatkowe paczki i tutaj mam na myśli
samego Pitera oraz dodatkowe paczki, które pozwolą nam połączyć Pitera ze sprintem.
W tym momencie jeżeli chodzi o instalacja
mamy już wszystko, natomiast znowu będziemy musieli utworzyć plik
konfiguracyjny, ale tym razem dotyczący samego Pitera.
W tym przypadku będzie to plik Piter LCG,
który również umieszczam w głównym katalogu projektu.
A jeżeli chodzi o jego konfigurację to tak
jak widzisz wszystko jest tutaj jasno opisane.
Natomiast ponownie zachęcam do tego, aby
przejrzeć te opcje i sprawdzić czy odpowiadają Twoim potrzebom.
Teraz, aby nam to wszystko działało musimy
jeszcze przejść do pliku s literce i tutaj i tutaj dodać następujące rozszerzenie.
W ten sposób, jeżeli jeszcze zadbamy w moim przypadku w Intelligent o to, aby
skonfigurować rozszerzenie s link, które jest akurat wbudowane w samego IntelliJ A
i tutaj wystarczy tylko zaznaczyć opcję wykrywania pliku konfiguracyjnego jako
automatyczną bądź ewentualnie manualną, jeżeli mamy taką potrzebę.
Natomiast w moim przypadku automatyczna jest zupełnie wystarczająca.
No i ewentualnie muszę zaznaczyć opcję dane slip on save.
Mało tego, mamy jeszcze plugin Safe Actions, który pozwala na wykonanie
różnego rodzaju akcji właśnie w momencie zapisywania pliku.
Jest to niesamowicie przydatna opcja, która pozwala nam zachować odpowiednią
jakość naszego kodu i odpowiednie formatowanie.
Natomiast jednocześnie musimy tutaj uważać
na to, aby opcje konfiguracyjne nie wchodziły ze sobą w konflikt, ponieważ w
efekcie będziemy mieć tutaj wiele niespodziewanych błędów.
I teraz przykładowo jeżeli. Ksenofobem.
Tutaj srebrniki to przede wszystkim.
Od razu mam tutaj informację o błędzie.
Natomiast jednocześnie jeżeli zapiszę ten
plik, wszystko zostanie natychmiast poprawione za mnie.
A tak swoją drogą to domyślam się, że możesz wykorzystywać Visual Studio Code i
tutaj konfiguracja Jasmine oraz Splittera nie różni się w żaden sposób.
Natomiast już opcje formatowania przez zapisywanie musisz włączyć w pliku
konfiguracyjnym uruchamiając opcję Editor format on save.
Wystarczy ustawić ją metodą i wszystko będzie wyglądało dokładnie tak jak u mnie.
Jeżeli chodzi o samą konfigurację projektu to byłoby na tyle.
Dziękuję Ci teraz za uwagę i zapraszam Cię do kolejnej lekcji.
Instalacja zależności · 2 min
yarn add eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint-plugin-react-dev