Wnętrze przepisania TypeScript 7 na Go: szybszość bez zmian w kodzie
Dowiedz się, w jaki sposób kompilator TypeScript 7 oparty na Go zapewnia 8–12 razy szybsze budowanie projektów, dlaczego ta zmiana architektury jest skuteczna oraz jak bezpiecznie aktualizować istniejące projekty.
Kompilator teraz działa na silniku opartym na Go, twój istniejący kod nie wymaga żadnych zmian, a czasy kompilacji znacznie się skróciły
Znaczące aktualizacje narzędzi, które pojawiają się zwykle raz na kilka lat, mają tendencję do zmiany codziennego procesu pracy, a TypeScript 7 odpowiada temu wzorcowi. Microsoft przebudował kompilator, aby zapewnić znacznie lepszą wydajność – pełne kompilacje odbywają się 8 do 12 razy szybciej – bez konieczności wprowadzania jakichkolwiek zmian w funkcjach języka, których już używasz.
Co faktycznie trafiło do wersji finalnej
TypeScript 7 pojawił się 8 lipca 2026 roku, zastępując kompilator oparty na JavaScriptie natywną implementacją w języku Go, stworzoną w ramach projektu o nazwie Project Corsa. Warto podkreślić, że jest to wierny port, a nie przebudowa: ta sama logika sprawdzania typów i semantyka języka zostały przetłumaczone linijka po linijce, dzięki czemu pliki .ts zachowują się dokładnie tak samo jak wcześniej. Zmienił się jedynie silnik wykonujący tę logikę, a nie sama logika.
Zgodnie z wewnętrznymi testami Microsoftu przeprowadzonymi na bazie kodu VS Code, czas ładowania projektów skurczył się z blisko minuty do około dziesięciu sekund. To główny wynik. W praktyce opóźnienie, które wcześniej występowało podczas uruchamiania polecenia tsc --watch po zmianie gałęzi, w dużej mierze znika.
Dlaczego jest tak szybszy
Dwie zmiany architektoniczne odpowiadają za większość wzrostu szybkości.
- Kod natywny skompilowany zamiast wykonywania operacji przez Node.js i silnik V8
- Paralelizm z wykorzystaniem pamięci wspólnej, który umożliwia jednoczesne wykonywanie operacji analizy, sprawdzania typów i generowania kodu na kilku rdzeniach CPU
W tym wydaniu wprowadzono również nowe flagi, --checkers i --builders, które pozwalają kontrolować, ile wątków roboczych pracuje równolegle nad sprawdzaniem typów i budową referencji projektu. Tryb obserwacji został również przeprojektowany – wykorzystuje narzędzie do monitorowania plików oparte na Go, pierwotnie opracowane dla Parcel, i teraz umożliwia znacznie szybszą budowę plików w formie inkrementalnej w dużych monorepo.
Jak faktycznie dokonać aktualizacji
Instalacja nowego kompilatora działa dokładnie tak samo jak zawsze:
npm install -D typescript
npx tsc --version
# TypeScript 7.0
Nie ma konieczności przeprowadzenia migracji konfiguracji, uruchomienia żadnych modów kodowych ani uwzględnienia zmian składni, które mogłyby powodować problemy. Jeśli wasz zespół już przyjął pakiet @typescript/native-preview na etapie wersji kandydackiej, ta funkcjonalność — oparta na pliku binarnym tsgo — została ponownie włączona do standardowego pakietu typescript, dostępnego poprzez tag dystrybucji next.
Należy zwrócić uwagę na jedną kwestię: API kompilatora programowego nie jest jeszcze w pełni stabilne. Jeśli twoja ścieżka budowania, konfiguracja ESLint lub własne narzędzia opierają się bezpośrednio na API TypeScript zamiast jedynie wywoływać tsc, unikaj na razie pisania nowego kodu wykorzystującego interfejsy takie jak createProgram. Zespoły w takiej sytuacji powinny odłożyć pełną migrację do chwili wydania wersji 7.1, ponieważ oczekuje się, że ta wersja zamknie luki, które pojawiły się podczas prac migracyjnych z zeszłego roku.
Co to oznacza dla projektów React i Next.js
Ponieważ wiele narzędzi frameworkowych jest opartych na kompilatorze TypeScript, te narzędzia automatycznie odziedziczą ulepszenia wydajnościowe. Sprawdzanie typów w czasie budowania w Next.js, responsywność IntelliSense w dużych bibliotekach komponentów stworzonych z użyciem Redux lub Tailwind, a także sprawdzanie typów w projekcie monorepo – wszystko to staje się szybsze bez konieczności wprowadzania jakichkolwiek zmian w kodzie. Dla zespołów, które odkładały włączenie opcji strict: true, ponieważ sprawdzanie typów w całym projekcie wydawało się zbyt wolne, by uzasadnić taką decyzję, to jest odpowiedni moment na ponowne rozważenie – koszt obliczeniowy tej decyzji właśnie spadł o rzęd wielkości.
Główne wnioski
- TypeScript 7 przepisuje kompilator, a nie sam język – twoje kody są sprawdzane w ten sam sposób, tylko na nowym silniku opartym na Go.
npm install, ale unikaj polegania na programowej API do tworzenia niestandardowych narzędzi do czasu wydania wersji 7.1.Jeśli czas budowania był powodem, dla którego unikałeś włączenia ścisłej kontroli typów, ten argument już nie obowiązuje. Zainstaluj nową wersję, uruchom swój istniejący zestaw testów i obserwuj spadek czasu działania pipeline’u CI.
Literatura pokrewna
- TypeScript 6 i 7: Mądrzejsza inferencja, a potem przeredakcja w Go — Dowiedz się, jak TypeScript 6 naprawił kluczowe luki w inferencji i zmodernizował domyślne ustawienia, przygotowując grunt pod całkowitą przeredakcję kompilatora w Go w TypeScript 7.
- Kompilator TypeScript w Go i rdzenna eksploatacja: Przewodnik po migracji — Dowiedz się, jak kompilator TypeScript oparty na Go oraz rdzenna eksploatacja w Node.js wpłyną na projekty React i Next.js oraz co należy teraz poprawić w pliku tsconfig.