Każdy, kto korzysta z ekosystemu JavaScript, jest dziś świadomy istnienia Typescript. Typescript jest jedną z najbardziej lubianych technologii*, a jego użycie stale rośnie (udział w użyciu wzrósł z 52% w 2018 roku do 78% w 2020 roku)*.
Obecna pozycja Typescript nie wzięła się znikąd, ponieważ technologia ta jest w stanie naprawdę poprawić nasze doświadczenie programistyczne. Bardziej przejrzyste kodowanie zwiększa kontrolę i przewidywalność kod. W tym artykule postaram się przekonać Cię do korzystania z Typescript.
Zazwyczaj podczas tworzenia aplikacji w aplikacji JavaScriptprzepływ może wyglądają następująco:
Dokonaj zmiany,
Przejdź do aplikacji i sprawdź zmienioną część / Uruchom (powiązane) testy.
Sprawdź, czy wszystko jest w porządku.
Dzięki Typescript możesz faktycznie wprowadzić zmianę i jeśli jest jakaś błąd typu w kodzie, dowiesz się o tym natychmiast dzięki komunikatowi o błędzie kompilatora lub informacji zwrotnej IDE w czasie rzeczywistym. Oczywiście kompilator Typescript nie rozwiąże każdego problemu i nie ostrzeże o wszystkich błędach, ale jego pomoc może być nieoceniona.
Lepsze uzupełnianie składni w IDE
To naprawdę proste. Jeśli korzystasz z dobrych IDE, takich jak WebStorm lub VSCode, otrzymasz lepsze uzupełnianie składni w Typescript. Może nie brzmi to jak ogromna poprawa doświadczenia programisty, ale ostatecznie każde pojedyncze ulepszenie ma znaczenie, ponieważ może zaoszczędzić nam trochę czasu i ponownie zapobiec literówce lub błędowi. Ponadto możemy raz zdefiniować nasz typ lub interfejs; ponieważ nie musimy zawsze pamiętać o strukturze, możemy skupić się na pisaniu logiki biznesowej.
Mniej bolesna refaktoryzacja
Wyobraź sobie, że z jakiegokolwiek powodu musisz przeprowadzić refaktoryzację, na przykład dołączyłeś do projekt i otrzymujesz zadanie dodania nowej funkcji, ale ta funkcja jest w jakiś sposób powiązana ze starszym kodem. Typescript może sprawić, że będzie to łatwiejsze i mniej bolesne, ponieważ gdy dokonasz zmiany i jest inne miejsce, w którym musisz dokonać kolejnej zmiany, kompilator ostrzeże cię o tym.
Na przykład - może to być zmieniona sygnatura funkcji lub, po zmianie, plik funkcja zwróci coś zupełnie innego, więc również zwracany typ będzie inny.
Większa pewność co do bazy kodu
JavaScript jest słabo i dynamicznie typowany, więc po zainicjowaniu zmiennej wartością let query = '' Później w kodzie programista może przez pomyłkę zrobić coś irracjonalnego, na przykład query = truei będzie to prawidłowy kod JS.
W dobrze napisanym kodzie przypisanie wartości logicznej do zmiennej, która wcześniej była ciągiem znaków, nie powinno mieć miejsca. Zazwyczaj więc przypisanie ze zmianą typu jest wynikiem błędu.
Podczas korzystania z Typescript nie możemy zmienić typu zmiennej, więc jeśli utworzymy zmienną let query = '' zmienna, będzie to ciąg i nie będziemy w stanie zmienić jego typu przez pomyłkę.
Jeśli chcemy, aby zmienna była więcej niż jednego typu, zawsze robimy to jawnie za pomocą unii typów, na przykład ciąg znaków | liczba.
Dlatego też Typescript sprawia, że nasz kod jest bardziej przewidywalny i jednoznaczny. Ponadto Typescript zadba o jawność w analizie przepływu sterowania i jeśli istnieje możliwość, że coś może pójść nie tak, ostrzeże cię.
Tutaj w przykładzie pierwszym jeśli otrzymamy błąd:
TS2339: Właściwość "battery" nie istnieje w typie "ClothingProduct". 2 razy, dla bateriaoraz baran właściwości.
W drugim bloku - innyotrzymamy ten błąd dla rozmiar własność. Oczywiście jest to tylko przykład pokazujący, w jaki sposób dyskryminowane związki zawodowe i analiza przepływu sterowania działa w Typescript, więc nie robimy nic zbyt skomplikowanego z tym kodem.
Łatwa, stopniowa migracja z JavaScript
Poprawny kod JavaScript jest jednocześnie poprawnym kodem Typescript, więc możesz migrować swoją bazę kodu krok po kroku. Zazwyczaj używanie trybu ścisłego w Typescript jest dobrą praktyką, ale w tym przypadku, musimy zacząć od "strict": false w tsconfig.json i powinniśmy również ustawić 2 dodatkowe opcje.
"allowJs": true, // pozwoli nam to na używanie plików .js, a typ nie będzie w nich sprawdzany
"skipLibCheck": true // pominie sprawdzanie typów w bibliotekach, których używamy
Dzięki tym opcjom możemy migrować z JS do TS krok po kroku - plik po pliku, po prostu zmieniając rozszerzenie z .js(x) do .ts(x) i dodawanie typów w plikach. Korzystając z tego podejścia, możemy uniknąć setek lub tysięcy przerażających błędów kompilacji.
Podsumowanie
Myślę, że powinniśmy użyć Maszynopis tak często jak możliwyponieważ jest to naprawdę korzystne w dłuższej perspektywie. Pomaga w utrzymaniu projektów, zwiększa doświadczenie programistów i sprawia, że nasza baza kodu jest bardziej przejrzysta i niezawodna.
Jednak, jak zawsze, istnieją wyjątki - na przykład dla prostej strony docelowej gdzie JavaScript jest używany tylko do przełączania klasy lub innego prostego przypadku, Typescript nie ma sensu. Trzeba też pamiętać, że aby w pełni wykorzystać możliwości Typescriptu, musimy nauczyć się go używać na wystarczającym poziomie, a to może zająć trochę czasu. Mimo wszystko uważam, że jest to bardzo opłacalna inwestycja czasu.