od Podstaw
1 godz. 54 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.
Prawdopodobnie znasz mechanizm intellisense, czyli inteligentnego podpowiadania kodu przez edytor. Pisząc kod w TypeScript, tworzysz definicje typów dotyczących Twojej aplikacji. W ten sposób dostęp do definicji klas i właściwości obiektów masz właściwie na wyciągnięcie myszki. Wystarczy "hover" na funkcji aby uzyskać szczegółowe informacje, które pomogą Ci w pisaniu kodu. Oprócz tego otrzymasz również automatyczne podpowiedzi w trakcie dostępu do właściwości i metod. Nic tylko pisać kod!
Nie musisz przepisywać całego projektu. TypeScript stanowi nadzbiór JavaScriptu. Zatem cały Twój projekt jest z nim w 100% kompatybilny, a Ty możesz stopniowo dodawać definicje typów. Nawet nie będziesz wiedział kiedy typy pojawią się w całej Twojej aplikacji. To daje Ci również możliwość uczenia się TypeScriptu w trakcie jego wdrażania. W tym kursie opanujesz podstawy a później... sam zobaczysz!
Ten kurs został stworzony z myślą o programistach, którzy podstawy JavaScriptu mają już za sobą i chcą poznać zalety statycznego typowania oferowanego przez TypeScript. Na początku Kursu zaczynamy również od krótkiej powtórki najważniejszych elementów samego JS.
3.8+
Wszystkie ustawienia dotyczące tego w jaki sposób kompilowane są nasze pliki TypeScript
na JavaScript możemy zapisać w pliku konfiguracyjnym
tsconfig. I teraz pokaże Ci w jaki sposób możemy dokładnie z niego korzystać.
Plik konfiguracyjny możemy utworzyć ręcznie lub wykorzystując polecenie tsc z flagą init.
Dzięki niemu w głównym katalogu projektu powstał plik tsconfig i właśnie w nim
znajduje się masa różnych opcji wraz z komentarzami dotyczącymi tego w jaki
sposób możemy konfigurować nasz kompilator.
Pozwól jednak, że usunę tutaj zbędne
komentarze, bo nas będzie interesować dosłownie kilka opcji.
Jak widzisz na początek nie potrzebujemy ich zbyt wiele i aby zrozumieć do czego
one służą możemy po prostu najechać na ich nazwę.
Dzięki temu wiemy, że target określa do której wersji JavaScriptu kompilowany jest
nasz kod. Natomiast module określa z którego systemu modułów będziemy korzystać i nas
oczywiście interesuje obecnie najbardziej popularny commonjs.
No i ostatecznie mamy opcję strict.
I tutaj nie chodzi o tryb strict z samego
JavaScriptu tylko tego, jak surowy to będzie dla nas TypeScript
podczas weryfikacji typów. Z całą pewnością
chcemy zadbać o to, aby ta opcja była włączona.
Teraz z pewnością interesuje Cię w jaki sposób możemy z tego pliku konfiguracyjnego
skorzystać i odpowiedź na to pytanie jest bardzo prosta, ponieważ wystarczy, że
uruchomimy polecenie tsc. TypeScript od razu zauważył, że w naszym
katalogu znajduje się plik konfiguracyjny i po prostu go wykorzystał.
Dzięki temu faktycznie mamy tutaj skompilowany plik.
Jeżeli chcielibyśmy wrócić do tego, aby pliki generowały się również w katalogu
dist wystarczy, że dodamy tutaj opcję outDir. Dzięki temu ponowne uruchomienie
polecenia tsc wygeneruje pliki w odpowiednim miejscu.
Teoretycznie na ten moment ostatnia rzecz,
która może nas interesować to obserwowanie plików.
W tym celu wykorzystujemy flagę 'w' przy poleceniu TypeScript.
Natomiast ja osobiście mam z tym mały problem.
Chodzi mi konkretnie o to, że teraz co prawda jeżeli będę wprowadzał jakieś
zmiany do pliku app.ts to plik app.js zostanie automatycznie wygenerowany, ale
nadal w przeglądarce będę musiał odświeżać stronę.
Jestem wielkim fanem ułatwienia sobie życia na każdym kroku,
dlatego nie będziemy korzystać z polecenia
tsc, tylko wykorzystamy narzędzie jakim jest Parcel.
Jest to alternatywa dla Webpack'a, przy czym
Parcel nie wymaga od nas praktycznie żadnej konfiguracji. Wystarczy, że globalnie
zainstalujemy go w naszym systemie i w ciągu kilku chwil jest dla nas dostępny.
Teraz uruchamiamy go poleceniem parcel indeks.html z opcją watch.
Teraz nasz serwer został uruchomiony, ale
nas interesuje jeszcze jedna mała zmiana. Mianowicie tutaj mamy link do naszego
pliku z katalogu dist, a teraz Parcel będzie dbał o to, aby przetłumaczyć plik TypeScript.
Więc teraz bezpośrednio możemy do niego linkować.
Dzięki temu nie tylko nasza aplikacja działa, ale również gdy wprowadzę w niej
jakąś zmianę i powiedzmy, że zrobimy teraz tak, to zaraz po zapisaniu pliku Parcel
zadba o to, aby odświeżyć okna przeglądarki.
Dzięki temu mamy już pełną konfigurację, która umożliwi nam dalszą naukę TypeScriptu.
Oczywiście, jeżeli Cię to interesuje,
możesz również skonfigurować tutaj Webpack'a.
Natomiast w mojej opinii w tym przypadku zdecydowanie lepszą opcją jest Parcel.
Zresztą jak widzisz uruchomienie go było bajecznie proste.
Teraz jesteśmy gotowi do tego, aby przejść do kolejnej lekcji.
Do usłyszenia za chwilę.