TypeScript – pierwsze kroki. Czym jest TS i dlaczego warto go poznać.

Dziś post otwierający nową serię: „TypeScript – pierwsze kroki”. W serii tej, będę omawiał tajniki supersetu JavaScriptu jakim jest TypeScript. Natomiast na koniec stworzę działającą aplikację webową używając składni TS.

Ten post jest tylko wstępem, w którym opowiem czym jest TypeScript. Wytłumaczę też, dlaczego w 2016 roku wciąż warto się z nim zaznajomić pomimo tego, że wydawałoby się, iż nie ma to za bardzo sensu.

typescript wprowadzenie

TypeScript to stworzony przez inżynierów Microsoftu język programowania, który kompiluje się (a właściwie to ‚transpiluje’ 😉 ) do JavaScriptu. Innymi słowy TypeScript jest supersetem (nadzbiorem?) JSa. Oznacza to, że posiada on w sobie wszystkie te mechanizmy, które ma JavaScript plus więcej. I to właśnie powoduje, że praca z tym językiem jest kusząca.

Twórcy TypeScriptu potrzebowali narzędzia, które wzmocni słabe strony JS’a. Uważali oni, że JS średnio nadaje się do pisania większych aplikacji. Zauważyli pojawiające się problemy związane ze skalowalnością i utrzymywaniem takich programów. Odpowiedzią na te problemy miał być TS. I wygląda na to, że im się udało. Jak dowód mogę chociażby przytoczyć fakt, że TypeScript jest językiem, w którym ludzie z Google napisali Angulara 2. A skoro Google dogadało się z Microsoftem, to znaczy że narzędzie musi być dobre 🙂 .

Podstawowe cechy TypeScript

Nie będę tu dokładnie wymieniał wszystkich cech odróżniających TS od JavaScriptu, ale postaram się wskazać te najciekawsze i najbardziej przydatne.

Pierwsza i bodajże najważniejsza cecha języka to to, że w odróżnieniu do JS’a, Typescript posiada silne typowanie. Oznacza to, że możemy deklarować zmienne, które przechowują tylko wartości konkretnego typu. Funkcje mogą przyjmować argumenty tylko określonego typu i zwracać wartości, zgadliście, tylko określonego typu. Mogą. Nie jest to mechanizm wymagany, piękno TS’a polega między innymi na tym, że można w każdej chwili przejść na zwykły JS i „to się skompiluje” 🙂

Kolejna cecha TypeScriptu to zupełnie odmienione podejście do obiektowości. Mamy tu wszystko to co w klasycznych języka programowania. Są klasy, interfejsy, statyczne funkcje, gettery, settery, konstruktory… Co tylko duszą zapragnie 🙂

TypeScript posiada też własny, bardzo prosty w obsłudze, system modułów. Bez problemu możemy importować i eksportować dane, nie zaśmiecając globalnej przestrzeni nazw.

Dlaczego powinienem/powinnam poznać TypeScript

Po pierwsze, nie wiem czy ktokolwiek koniecznie powinien poznać TS’a. Na pewno można obejść się i bez niego. Jeśli jednak ktoś ma czas, na pewno nie straci na nauczeniu się czegoś nowego. TS, jest obecnie dość popularny. Przykładem na to może być wspomniana wcześniej druga wersja angulara.

Sporo cech TS’a to po prostu implementacje cech JavaScriptu z wersji ES6 i ES7. Przykładem mogą być chociażby klasy. Wiem, że ES6 już prawie tu jest, ale wciąż wiele przeglądarek nie wspiera funkcjonalności tej wersji. A kod TypeScriptu kompiluje się do ES5, więc problem mamy z głowy.

Sam proces kompilacji może na początku wydawać się kłopotliwy, szczególnie dla ludzi, którzy nigdy nie programowali poza środowiskiem webowym. Ale prawda jest taka, że bardzo łatwo jest ustawić automatyzacje procesu kompilacji, zresztą w kolejnym poście pokażę jak to zrobić 🙂 . Wielkim plusem tego, że musimy kompilować kod, jest to, że dużo szybciej wyłapuje się błędy. Bugi są widoczne zanim jeszcze uruchomimy aplikację.

Zresztą w TypeScript bardzo łatwo jest odnaleźć błędy już podczas pisania programu. Większość edytorów posiada świetne narzędzia do lintowania kodu TSa. No ale zaraz, może ktoś powiedzieć, JavaScript też ma swoje lintery. Jasne ale nie są aż tak skuteczne, uwierzcie mi. Dzięki typowaniu danych, automatyczne wykrywanie błędów jest niezwykle efektywne.

Zresztą typowanie sprawia też, że kod staje się łatwiejszy do zrozumienia. Dużo łatwiej jest domyślić się za co odpowiada zmienna, jeżeli oprócz jej nazwy, wiemy też jakiego rodzaju wartość przechowuje.

No i na koniec składnia obiektowa języka, która w dużej mierze bazuje na tym, co znajduje się ES6. Myślę że sam fakt tego, iż możemy już teraz używać do standardu, który jeszcze nie do końca „wszedł”, to ogromny plus.

I teraz ktoś mógłby powiedzieć, ale po co się w to wdrażać, skoro za jakiś czas ES6 i tak wprowadzi te mechanizmy. Będą dostępne bez procesu kompilacji. Może i tak, ale jednej cechy TypeScriptu JS nigdy nie wprowadzi – typów. A ta cecha będzie zawsze „relewantna”. Dlatego uważam, że zdecydowanie warto jest poświęcić trochę czasu na poznanie TSa, bo zbyt szybko nie zniknie. Stawiałbym wręcz, że będzie jeszcze bardziej popularny.

Po za tym nauka czegoś nowego to zawsze dużo frajdy 🙂 .

Dlaczego nie powinienem/powinnam poznać TypeScript

Zdecydowanie powinna odpuścić sobie zagłębianie tajników TSa osoba, która nie opanowała jeszcze zbyt dobrze podstaw ‚czystego’ JavaScriptu. Jeżeli jeszcze nie napisałaś/napisałeś w swoim życiu przynajmniej kilku średniej wielkości aplikacji webowych, może być za wcześnie wdrażanie się w język transpilowany do JS. Dlaczego? Bo większość TSa, to tylko upiększona składnia, pod którą kryją się te same stare dobre mechanizmy jak prototypowość czy domknięcia. Po prostu zanim zaczniemy budować dom, trzeba postawić silne fundamenty 🙂 .

Oczywiście naukę TypeScripta powinny również odpuścić sobie osoby, które nie będą wykorzystywać mechanizmów, które dostarcza. Chodzi o to, żeby zastanowić się czy funkcje tego języka przydadzą Ci się w codziennej pracy. Jeżeli twoim celem nie jest tworzenie dużych rozmiarów aplikacji webowych, znajomość tego języka może nie być Ci koniecznie potrzebna.

Podsumowanie

Dzisiejszy post był bardziej teoretyczny niż praktyczny, ale spokojnie. Przykłady nadchodzą i będą tu już niedługo 🙂 . Pamiętajcie, że to tylko wstęp do dłuższej serii 🙂 . W kolejnych postach dotyczących TypeScriptu, przedstawię proces automatyzacji oraz środowisko pracy, których będę używał do tworzenia aplikacji TSowych. Przedstawię też, w końcu, trochę przykładowego kodu 🙂 .

Na koniec, jak zawsze, zachęcam do polubienia mojej strony na facebooku. Zawsze na bieżąco zamieszczam tam informacje o nowościach, więc warto polubić aby nie przegapić żadnego nowego wpisu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *