5 powodów, dla których Deno przestanie używać TypeScript
W dniu dzisiejszym pojawił się dokument wskazujący, że Deno przestanie używać TypeScript w swoim wewnętrznym kodzie, powołując się na kilka problemów z obecnym środowiskiem. Wspomniane problemy dotyczą między innymi czasu kompilacji TypeScript, struktury i organizacji kodu. Idąc dalej, Deno będzie używać czystego JavaScript do swojego wewnętrznego kodu.
Deno problemy z TypeScript
Niekorzystne sytuacje, które zespół Deno doświadcza obecnie podczas korzystania z TypeScript w swoim kodzie wewnętrznym, to:
-
Czas kompilacji TypeScript, gdy zmiana plików zajmuje kilka minut, sprawia, że ciągłe kompilowanie jest niezwykle powolnym procesem
-
Struktura Typescript, której używają w plikach źródłowych, które tworzą rzeczywisty plik wykonywalny Deno i interfejsy API skierowane do użytkowników, powodują problemy z wydajnością środowiska wykonawczego
-
TypeScript nie jest pomocny w porządkowaniu kodu Deno. Wręcz przeciwnie, zespół Deno doświadcza odwrotnego efektu. Jednym z wymienionych problemów jest to, że skończyły się zduplikowanymi niezależnymi klasami ciała w dwóch lokalizacjach https://github.com/denoland/deno/issues/4748
-
Deklaracje TypeScript kodu wewnętrznego i środowiska wykonawczego muszą być ręcznie synchronizowane, ponieważ kompilator TypeScript nie jest pomocny w generowaniu plików d.ts
-
Utrzymują dwa hosty kompilatora TS: jeden dla wewnętrznego kodu Deno, a drugi dla zewnętrznego kodu użytkownika, mimo że oba mają podobny cel
Usuwanie TypeScriptu z wewnętrznego kodu Deno
Zespół Deno ma na celu usunięcie całego sprawdzania i łączenia typów TS w czasie budowania dla wewnętrznego kodu Deno. Nie mogą się doczekać przeniesienia całego kodu środowiska wykonawczego do jednego pliku JavaScript . Jednak nadal będą używać towarzyszącego pliku d.ts, aby zachować definicje typów i dokumentację.
Warto wspomnieć, że Deno przestanie używać TypeScript tylko dla wewnętrznego kodu Deno: kod użytkownika Deno nadal będzie w TypeScript, a zatem będzie sprawdzany.
Chociaż TypeScript jest czasami postrzegany jako ulepszona wersja JavaScript, ten przypadek pokazuje, że w rzeczywistości tak nie jest. Ma wady jak każdy inny język. Jednym z najważniejszych jest powolny czas kompilacji. Podczas gdy małe projekty mogą nie zauważyć ogromnego skoku czasu kompilacji po przejściu z czystego JavaScript na TypeScript, będzie to zauważalne w dużych projektach, takich jak złożona aplikacja React . Biorąc pod uwagę duży rozmiar środowiska uruchomieniowego, nie jest zaskakujące, że Deno przestanie używać TypeScript.
Bezpieczeństwo sprawdzania typu podczas opracowywania ma swój koszt w czasie kompilacji. Nie bez powodu projekt TypeScript ma obszerny dokument na temat tego, jak adresować i poprawiać czas kompilacji. Jednym z najciekawszych podejść jest użycie Project References, który pozwala programistom na rozbicie dużego fragmentu kodu TypeScript na mniejsze części.
Przeczytaj więcej o tym, dlaczego Deno przestanie używać TypeScript
Pełne omówienie decyzji o usunięciu TypeScript z wewnętrznego kodu Deno i użyciu JavaScriptu można znaleźć w tym dokumencie, w którym Ryan Dahl i współpracownicy omawiają problem, jego rozwiązanie i sposób jego implementacji.