Michał Miszczyszyn, programista i autor książki „TypeScript na poważnie”, wyjaśnia, czym jest TypeScript (JavaScript z typami i kompilatorem), dlaczego jego popularność nie jest chwilową modą i czemu coraz częściej pojawia się w ogłoszeniach także dla juniorów. Porównuje projekty w TypeScripcie i czystym JavaScripcie, omawia typowanie statyczne, własne typy oraz trzy największe zalety języka: szybki feedback w edytorze, społeczność i łatwość wdrożenia do istniejących projektów. Radzi też, jak zacząć naukę, jakich błędów unikać (ignorowanie komunikatów kompilatora, nadużywanie „any”), jak skonfigurować środowisko w VS Code i stopniowo przepisywać projekt z JavaScriptu na TypeScript.
Michał Miszczyszyn
Blog · YouTube · GitHub · LinkedIn · Facebook · Twitter · Discord\n\nMichał Miszczyszyn jest absolwentem informatyki i zarządzania na Politechnice Wrocławskiej, w branży IT działa od ponad 10 lat — od aplikacji mobilnych, przez infrastrukturę i backend, po frontend — a dziś kieruje zespołami i prowadzi projekty. Jest autorem książki „TypeScript na poważnie” i grupy „TypeScript Polska” na Facebooku oraz prowadzi bloga typeofweb.com.
Michał rekomenduje:\n- Michał Miszczyszyn, „TypeScript na poważnie”\n- „TypeScript Deep Dive” (darmowy e-book)
Skrót rozmowy: Czas na TypeScript
Dziś moim gościem jest Michał Miszczyszyn. Z Michałem będziemy rozmawiać o TypeScripcie oraz o tym, jak zabrać się za jego naukę. Michale, dziękuję, że przyjąłeś moje zaproszenie na rozmowę.
Cześć! To ja dziękuję, że zostałem zaproszony. Jest mi bardzo miło.
Czy możesz się przedstawić i powiedzieć nam, co łączy Cię z branżą IT?
Z branżą IT jestem związany od ponad 10 lat. Zostałem absolwentem informatyki i zarządzania na Politechnice Wrocławskiej. Karierę zaczynałem jako programista aplikacji mobilnych, a potem pracowałem zarówno w infrastrukturze, backendzie, jak i we frontendzie. Ostatnio zajmuję się kierowaniem zespołami i prowadzeniem projektów informatycznych, ale wciąż mam kontakt z kodowaniem.
Warto wspomnieć, że hobbystycznie studiowałem dietetykę, co przerodziło się w mój drugi zawód – obecnie specjalizuję się w podnoszeniu wydajności umysłowej przedsiębiorców i osób z branży IT.
Czym jest TypeScript i dlaczego tyle się o nim słyszy w kontekście JavaScriptu?
Dla osób, które nigdy nie słyszały o TypeScripcie, można to opisać jako odmianę JavaScriptu, do której dodano typy. Działa to na kilku poziomach: mamy adnotacje typów i kompilator, który zamienia ten kod na czysty JavaScript. Dodatkowo kompilator pozwala na sprawdzanie poprawności kodu – na tyle, na ile to możliwe w czystym JavaScripcie. Mamy też świetne wsparcie w popularnych edytorach kodu, które pomagają nam pisać, sugerując, byśmy nie popełniali błędów.
Czy rosnąca popularność TypeScriptu to tylko moda, czy jednak możemy liczyć na to, że zostanie on z nami na dłużej i w związku z tym warto się go uczyć?
TypeScript z nami zostanie, i to raczej na długo. W tej chwili jesteśmy na szczycie jego popularności, a liczba programistów na rynku stale rośnie, co będzie napędzać ten trend. Coraz więcej projektów jest pisanych w TypeScripcie, w tym również przez ogromne korporacje, co sprawia, że znajomość tego języka to bardzo solidna inwestycja we własną karierę.
Jak według Ciebie wygląda lub wkrótce będzie wyglądał rynek pracy dla juniorów? Poprzeczka cały czas się podnosi - czy wkrótce już do pierwszej pracy będzie trzeba znać TypeScript?
Wymagania stale rosną i TypeScript coraz częściej pojawia się w ogłoszeniach, nawet tych na stanowiska juniorskie. Myślę, że niebawem stanie się on standardem branżowym, zwłaszcza w większych projektach i firmach. Zdecydowanie warto się go uczyć już teraz, bo daje ogromną przewagę nad konkurencją na rynku pracy.
Jaką przewagę daje nam projekt pisany z wykorzystaniem TypeScript nad projektem pisanym w tzw. Vanilla JS, tj. czystym JavaScripcie?
Przede wszystkim kod TypeScriptu wymusza na nas formalizowanie tzw. "umów" w kodzie. W czystym JavaScripcie musimy o tych założeniach pamiętać, a w TypeScripcie robi to za nas kompilator. Jeśli mamy nowy zespół i ktoś do niego dołącza, TypeScript znacznie ułatwia wdrażanie się w projekt. Nowa osoba widzi, jakie typy są dozwolone i czego może użyć, a to daje duże poczucie pewności, ponieważ kompilator weryfikuje poprawność za nas.
JavaScript to język typowany dynamicznie. Czy możesz wyjaśnić, czym to typowanie jest i dlaczego TypeScript wprowadza typowanie statyczne?
W skrócie oznacza to, że w JavaScripcie możemy przypisać zmiennej dowolny typ, co ułatwia na początku pracę, ale w większych projektach bywa problematyczne. Z kolei w TypeScripcie to typowanie jest ścisłe i statyczne, czyli np. liczba zawsze pozostanie liczbą. To ułatwia wyłapywanie błędów na wczesnym etapie, jeszcze w trakcie samego pisania kodu.
Za co jeszcze TypeScript jest tak lubiany? Gdybyś miał wymienić 3 jego największe zalety - co to by było?
Pierwsza to zdecydowanie szybki feedback w edytorze – od razu wiemy, gdy popełnimy błąd. Druga to społeczność – ekosystem wyrósł na coś ogromnego i zrzesza twórców bibliotek oraz pomocnych ludzi. A trzecia to łatwość wdrażania do już istniejących projektów, ponieważ nawet częściowe dodanie TypeScripta do pliku JS natychmiast poprawia jego czytelność.
Z JavaScriptu znamy typy proste i złożone, np. number, string czy object. TypeScript umożliwia definiowanie innych typów. Mógłbyś przybliżyć słuchaczom zasadność korzystania z nich?
Jasne. Dzięki temu mamy możliwość tworzenia typów własnych, które opisują złożone obiekty charakterystyczne dla naszego projektu. Pozwala nam to zapisać nasze intencje i umowy, więc gdy pracujemy w zespole, każdy wie, jakie dane wchodzą do funkcji i jakie z niej wychodzą, a to znacząco zmniejsza szansę na powstanie błędów.
Jakie błędy popełniają osoby rozpoczynające naukę TypeScriptu? Czy możesz nas na coś wyczulić?
Jednym z najczęstszych błędów jest ignorowanie sygnałów od kompilatora i niedoczytywanie, z czym konkretnie mamy problem. Ważne jest, by czytać komunikaty błędów, najlepiej od dołu do góry, bo zazwyczaj na końcu jest napisane wprost, z czym jest problem. Drugim błędem jest nadużywanie typu "any", co w praktyce oznacza zrezygnowanie z dobrodziejstw, jakie oferuje TypeScript.
Powiedzmy, że opanowałem JavaScript na tyle, że mogę iść dalej, np. zacząć naukę Vue czy Reacta. Kiedy jest dobry moment na naukę TypeScriptu?
Myślę, że to świetny moment. Zwłaszcza dlatego, że frameworki, takie jak Vue czy React, same w sobie świetnie wspierają TypeScript. Kiedy znasz podstawy JS-a, wejście w TypeScript i użycie go we frameworkach ułatwi Ci pisanie skalowalnych aplikacji i zaoszczędzi mnóstwo problemów przy nauce samych frameworków.
Od czego zacząć naukę TypeScriptu? Od kursu, książki, artykułów, a może od dokumentacji TS? Czy jest coś, co możesz polecić?
W zasadzie można zacząć od wszystkiego. Zdecydowanie jednak polecam sięgnięcie po książkę mojego autorstwa, "TypeScript na poważnie". Pokrywa ona cały temat od podstaw, i uczy, jak w praktyce zacząć myśleć typami. Dobrym miejscem są też sprawdzone kursy online. Ważne jest tylko, by teoria szybko spotykała się z praktyką, dlatego nie ograniczaj się tylko do samego czytania.
Gdzie szukać pomocy, gdy utkniemy na czymś podczas nauki TypeScriptu? Mamy w Polsce jakieś dedykowane forum czy np. grupę na Facebooku?
Oczywiście. Stworzyłem na Facebooku grupę "TypeScript Polska", w której staramy się wymieniać wiedzą i wzajemnie wspierać. Są też serwery Discord, a jeśli chodzi o konkretny kod, zawsze można poprosić innych o review, chociażby na otwartych kanałach projektów Open Source.
Załóżmy, że chcę zacząć naukę TypeScriptu z Visual Studio Code. Jak przygotować sobie środowisko do pracy na podstawach?
To jest na szczęście niesamowicie proste. VS Code ma wbudowane wsparcie dla TypeScriptu. Wystarczy stworzyć projekt, np. używając komendy NPM i doinstalować pakiety potrzebne do TS-a. Oprócz tego nie musisz instalować żadnych wtyczek, sam edytor poradzi sobie doskonale.
W portfolio mam projekt napisany w JavaScripcie i chciałbym przepisać go na TypeScript. Jak się do tego zabrać?
Trzeba to robić stopniowo. Nie zmieniaj od razu wszystkich plików na ".ts", bo kompilator zaleje Cię błędami. Najlepiej zacząć od konfiguracji, która pozwala na stopniowe dodawanie TypeScriptu do istniejących plików JS (np. flagą "allowJS" w pliku "tsconfig.json"). Możesz dopisywać adnotacje "JSDoc" w starym kodzie, co poprawi czytelność, a z czasem wymieniać pliki jeden po drugim.
Jaką książkę polecisz osobie, która chce zacząć swoją przygodę z TypeScriptem?
Tak jak już mówiłem, serdecznie polecam własną książkę – "TypeScript na poważnie". Została napisana w języku polskim, z myślą o realiach naszej pracy, i moim zdaniem dobrze wprowadzi każdego w świat typowania. W sieci można też znaleźć darmowego ebooka "TypeScript Deep Dive", który jest świetnym uzupełnieniem.
Gdzie możemy Cię znaleźć w sieci?
Najłatwiej będzie na moim blogu: typeofweb.com. Prowadzę też swój kanał na YouTube oraz występuję na różnych wydarzeniach i konferencjach branżowych, więc tam na pewno się spotkamy.





