Techniki Zaawansowane
2 godz. 35 min · Typescript · Full-stack i Programowanie
Adam GospodarczykZacznijmy od tego, że JavaScript jest dynamicznie typowany. Oznacza to, że typy zmiennych mogą się zmieniać w czasie wykonywania programu, a my nie mamy nad nimi kontroli. A po co nam ta kontrola? Między innymi po to, aby przypadkowo nie dodać typu number do string lub przekazać do funkcji nieprawidłowe danych. Ogromną zaletą jest to, że o tego typu błędach dowiadujemy się już na etapie pisania kodu a nie dopiero w trakcie jego wykonywania... na produkcji.
TypeScript umożliwia stosunkowo prostą migrację istniejących projektów JavaScript. W kursie na przykładzie zostały omówione trzy strategie, dzięki którym jesteśmy w stanie dodać statyczne typowanie do istniejącego kodu. W procesie migracji najważniejsze jest to, że przepisywanie kodu jesteśmy w stanie uzależnić również od poziomu naszej wiedzy na temat TypeScriptu i stopniowo dodawać kolejne elementy.
Na pierwszy rzut oka można uznać, że TypeScript tylko dodaje nam pracy, wymuszając dodatkową konfigurację oraz opisywanie typów. Mało tego zwiększa barierę wejścia w projekt dla mniej doświadczonych programistów. Trudno temu zaprzeczyć ALE - korzyści płynące ze statycznego typowania które wpływają na zmniejszenie liczby błędów oraz wykrywanie ich nawet na poziomie pisania kodu, oszczędzają czas który normalnie poświęcilibyśmy na późniejsze debugowanie aplikacji. Poza tym zwiększenie stabilności aplikacji daje szerokie korzyści biznesowe, które wielokrotnie wynagradzają nam czas wymagany na pisanie dodatkowej składni.
JavaScript jest językiem dynamicznie typowanym. W trakcie wykonywania programu, zmienne mogą zmieniać swój typ a my nie zawsze mamy nad tym świadomą kontrolę. Tylko ... po co nam ta kontrola? Główną zaletą statycznego typowania jest to aby uniknąć sytuacji w których przypadkowo przypisujemy tekst do zmiennej która powinna zawierać liczbę lub sytuacji w której przekazujemy do funkcji nieprawidłowe dane. Taki rodzaj pomyłek generuje błędy odniesienia (eng. ReferenceError), które zatrzymują działanie skryptu i są momentami bardzo uciążliwe do wykrycia. Dzięki statycznemu typowaniu, jesteśmy w stanie wykrywać je na etapie pisania kodu.
TypeScript na przestrzeni ostatnich lat zyskuje ogromną popularność w społeczności programistów JavaScript i coraz częściej jest nieodłącznym elementem ofert o pracę. W przypadku firm nastawionych na rozwój rozbudowanych aplikacji JavaScript już teraz jest w zasadzie standardem. Biorąc pod uwagę fakt, że najnowsze frameworki (np. Nest.js) wykorzystują TypeScript domyślnie, nauka tej technologii ma ogromny sens w kontekście rozwoju jako programista. I ostatnim argumentem za tym aby wziąć TypeScript na poważnie jest to, że stoi za nim firma Microsoft a on sam rozwijany jest już niemal 10 lat.
Ten kurs został stworzony z myślą o programistach, którzy podstawy TypeScriptu mają już za sobą i chcą poznać jego zaawansowane techniki. Aby w pełni wykorzystać wiedzę z tego kursu, niezbędna jest również zaawansowana znajomość JavaScriptu a w szczególności jego elementów prowadzonych w wersji ES6+. Zdecydowanie polecamy przerobienie kursu Podstawowego TypeScript, który znajdziesz na eduweb, przed korzystaniem z tego materiału.
3.9+
Cześć, witam cię w kolejnym zaawansowanym kursie TypeScriptu na Eduweb.pl.
Ja nazywam się Adam Gospodarczyk i będę
miał przyjemność poprowadzić cię przez ten kurs.
Dodam tylko że istnieje duża szansa na to
że mój głos kojarzy się już z kanału Overment, który prowadzę już od kilku lat na
YouTubie. W tej lekcji chciałem pokazać to co przygotowałem dla Ciebie w tym kursie a
przygotowałem całkiem sporo, ponieważ znajdziesz w nim 25 lekcji, z których każda
dedykowana jest jednemu zaawansowanemu tematowi.
Kurs zacznijmy od tego aby dobrze zrozumieć
działanie słowa kluczowego this na różnych przykładach bo zależy mi tutaj na tym aby
to wszystko było dla ciebie jasne, ponieważ w kolejnych lekcjach przechodzimy do
typowania słowa kluczowego this, które wymaga od ciebie właśnie tej wiedzy.
Następnie poznasz typy generyczne oraz
ograniczenia generyczne i bez wątpienia jest to jeden z ciekawszych i zarazem
trudniejszych tematów ze względu na to, że typy genetyczne wprowadzają tutaj wiele
dodatkowej składni, która wcale nie przypomina JavaScriptu.
I może na pierwszy rzut oka wydawać się całkiem nieintuicyjna.
Następnie powiemy sobie o przeciążeniach
czyli definicjach wielu typów dla jednej funkcji.
Jest to kolejny temat w którym z całą
pewnością niejednokrotnie będziesz spotykał się w pracy z TypeScriptem.
Po nim przechodzimy do zagadnienia związanego z type querie czyli generalnie
możliwości tworzenia typów na podstawie innych typów.
Potem kontynuujemy temat tzw.
utility types i tutaj ponownie w tej chwili nie będę się w to zgłębiać ale
znowu mówimy tutaj o sprytnym wykorzystaniu istniejących już typów.
Idąc trochę dalej opowiem ci
wszystko to co wiem na temat typowanie obiektów oraz typu enum.
Pomimo tego że zarówno jeden jak i drugi temat został już omówiony przeze mnie w
kursie podstawowym to tutaj rozszerzam go w oparciu o dodatkową wiedzę którą
zdobyliśmy na przestrzeni tego kursu. Później przechodzimy już do zaawansowanych typów.
Konkretnie będziemy wykorzystywać
mechanizm type guard, do tego aby uzależnić działanie naszego kodu w zależności od
typów przekazanych danych do funkcji i metod.
Temat type guard jest na tyle rozległy że będziemy go omawiać w trzech kolejnych
lekcjach wykorzystując między innymi słowo kluczowe instanceof.
Ostatecznie będziemy też tworzyć własne type guardy.
To wszystko zaprowadzi nas do tematu wykorzystania definicji typów zarówno tych
dotyczących zewnętrznych bibliotek jak i tych które będziesz sam tworzył.
No i ostatnim tematem który będziemy poruszać w tym kursie jest to abyś
dokładnie zrozumiał jak działa plik konfiguracyjny tsconfig.
Jest to podstawowe narzędzie pracy w
TypeScripcie i z tego powodu warto żebyś zrozumiał co dokładnie się tutaj dzieje.
Co prawda samo ustawienie tych opcji nie
jest w żaden sposób skomplikowane bo jak widzisz mamy tutaj po prostu plik JSON
w którym określamy poszczególne ustawienia.
Natomiast zrozumienie działania tych opcji
jest już nieco bardziej złożone i wymaga od nas nieco więcej uwagi.
W momencie gdy będziemy uzbrojeni w całą
tę wiedzę pokażę ci w jaki sposób możesz zmigrować istniejący projekt TypeScriptu,
ze względu na to, że jak wszyscy wiemy świat nie jest idealny i nie zawsze
będziesz miał możliwość wykorzystania TypeScriptu wyłącznie w nowych projektach.
Czasem przyjdzie ci zmigrować istniejący
projekt JavaScript do TypeScript i wtedy wskazówki którymi podzielę
się tutaj okażą się z pewnością bardzo przydatne.
No i ostatecznie taka wisienka na torcie ode mnie polegająca na tym że zdradzę ci
pewne triki które wykorzystuję podczas nauki różnych technologii.
Te triki pozwalają mi szybciej przyswoić wiedzę i jednocześnie pomagają mi szybciej
przechodzić na kolejne poziomy znajomości wybranego tematu.
Ostatecznie te wszystkie tematy które omówiłem zamknąłem w krótkich lekcjach na
których skupiam się wyłącznie na tym aby przekazać ci to co jest najważniejsze.
Dzięki temu nie mam wątpliwości że nauka
TypeScriptu również tego zaawansowanego będzie dla ciebie czystą przyjemnością.
Jednocześnie już dosłownie kilka małych
godzin dzieli Cię od tego abyś mógł wykorzystywać TypeScript w praktyce, posiadając duże
zrozumienie dotyczące tego co zrobisz i co może zrobić.
Jeżeli chodzi o słowo wstępu to już tyle
teraz zapraszam serdecznie do kolejnej lekcji.