𝗧𝘆𝗽𝗲𝗦𝗰𝗿𝗶𝗽𝘁 𝟲.𝟬 𝗝𝗲𝘀𝘁 𝗝𝘂ż 𝗗𝗼𝘀𝘁𝗲𝗽𝗻𝘆

TypeScript 6.0 to przełomowy moment. Jest to ostatnia wersja zbudowana na bazie kodu JavaScript. Kolejna wersja, 7.0, przejdzie na kompilator oparty na języku Go.

Ta zmiana ma znaczenie dla Twojego projektu. Jeśli zbyt długo zwlekniesz z aktualizacją, będziesz musiał przeprowadzić dwie migracje jedna po drugiej.

Nowe funkcje, z których warto korzystać

• Słowo kluczowe using: Zarządza ono zasobami, takimi jak połączenia z bazą danych czy uchwyty plików. Automatycznie zwalnia pamięć. Nie musisz już stosować dodatkowych bloków finally, aby zapobiegać wyciekom.

• Lepsza inferencja metod: Możesz przestać pisać jawne adnotacje typów dla API typu fluent. TypeScript zajmie się teraz kontekstem za Ciebie.

• Usprawnienia w krotkach wariadycznych (variadic tuples): Możesz teraz rozprzestrzeniać typy na dowolnej pozycji w krotce. Dzięki temu pisanie złożonych wzorców funkcji staje się znacznie łatwiejsze.

Zysk na wydajności

Nowa wersja jest szybsza. W dużych projektach czas przebudowy skraca się nawet o 40%. Kompilator korzysta teraz z inteligentniejszego śledzenia zależności. Ponownie kompiluje tylko wtedy, gdy zmienia się sygnatura, a nie tylko gdy zmienia się treść funkcji.

Zmiany naruszające kompatybilność (Breaking Changes), na które należy uważać

• Łączenie przestrzeni nazw (namespace merging): Przy łączeniu przestrzeni nazw z klasami należy używać jawnych eksportów.

• Surowsze sygnatury indeksów: Nie można już uzyskiwać dostępu do dowolnych właściwości obiektu. Zapobiega to błędom wynikającym z założenia, że dana właściwość istnieje, mimo że w rzeczywistości jej nie ma.

• Domyślne ustawienia trybu ścisłego (strict mode): Flaga noUncheckedIndexedAccess jest teraz włączona domyślnie. Musisz sprawdzać, czy elementy tablicy są null lub undefined.

Strategia migracji

Nie panikuj, jeśli zobaczysz wiele błędów. Postępuj zgodnie z poniższymi krokami:

  1. Najpierw uruchom kompilator z flagą noEmit, aby zobaczyć wszystkie błędy.
  2. Użyj oficjalnych narzędzi codemod, aby automatycznie naprawić sygnatury indeksów i sprawdzenia wartości null.
  3. Ręcznie napraw problemy ze przestrzeniami nazw.
  4. Sprawdź swoje node_modules. Niektóre biblioteki mogą jeszcze nie wspierać wersji 6.0.

Przejście na kompilator Go w wersji 7.0 zapewni 10-krotnie szybsze sprawdzanie typów. Zacznij migrację do wersji 6.0 już teraz, aby przygotować swój kod na przyszłość.

Źródło: https://dev.to/jsmanifest/typescript-60-released-the-last-javascript-based-version-new-features-breaking-changes-and-48a0