TypeScript Academy · Lekcja

Rozpoczęcie migracji: allowJs i checkJs

Włącz sprawdzanie TypeScript w projekcie JavaScript.

Lekcja 1 z 413 kroki

Rozpoczęcie migracji: allowJs i checkJs to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej TypeScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs TypeScript Academy zawiera 4 lekcji w sumie.

Wyzwanie związane z migracją

Jednorazowa migracja dużej bazy kodu JavaScript do TypeScript jest ryzykowna. Stopniowe podejście polega na włączaniu TypeScriptu etapami, plik po pliku, przy jednoczesnym zachowaniu działania projektu.

# Key compiler flags for gradual migration:
# allowJs — allow .js files in the compilation
# checkJs — type-check .js files with JSDoc types

Krok 1: Instalacja TypeScript

Dodaj TypeScript do projektu i utwórz minimalny plik tsconfig, początkowo bez trybu strict.

npm install --save-dev typescript
npx tsc --init
# Edit tsconfig.json to set allowJs: true

allowJs: true

Przy allowJs: true TypeScript uwzględnia pliki .js podczas kompilacji. Sprawdzanie typów jest liberalne — większość kodu JavaScript zostanie skompilowana bez błędów.

{
  "compilerOptions": {
    "allowJs": true,
    "outDir": "./dist",
    "target": "ES2020"
  },
  "include": ["src"]
}

checkJs: true

checkJs: true włącza sprawdzanie typów w plikach JavaScript za pomocą typów wywnioskowanych i adnotacji JSDoc. Ujawnia oczywiste błędy bez konieczności konwersji do .ts.

{
  "compilerOptions": {
    "allowJs": true,
    "checkJs": true
  }
}

Pomijanie błędów za pomocą @ts-nocheck

Dodaj // @ts-nocheck na początku problematycznych plików JS, aby pominąć wszystkie błędy TypeScriptu podczas stopniowej migracji.

// @ts-nocheck
// This file is not yet migrated — errors suppressed
function legacyUtil(x) { return x.foo.bar; }

Pomijanie błędów dla pojedynczych linii

Użyj // @ts-ignore, aby pominąć błąd w jednej linii bez wyłączania sprawdzania całego pliku.

const result = legacyFn(value); // @ts-ignore
// Only this line's error is suppressed

maxNodeModuleJsDepth

Domyślnie TypeScript sprawdza pliki JS tylko w projekcie. Ustaw maxNodeModuleJsDepth, aby określić, jak głęboko ma sprawdzać pliki JS w node_modules.

{
  "compilerOptions": {
    "maxNodeModuleJsDepth": 1 // Check 1 level deep in node_modules
  }
}

Kompilowanie JS do katalogu dist

Za pomocą allowJs kompilator TypeScriptu może również transpilować pliki JS — jest to przydatne do jednolitego stosowania polyfilli i kierowania kodu do starszych środowisk.

tsc
# Compiles both .ts and .js files to dist/

Pomiar postępów

Śledź postępy migracji, zliczając pliki .js i .ts. Ustal cel dotyczący odsetka plików konwertowanych w każdym sprincie.

find src -name "*.ts" | wc -l   # TypeScript files
find src -name "*.js" | wc -l   # JavaScript files remaining

Unikanie regresji typów

Początkowo pozostaw noImplicitAny: false, aby istniejące pliki JS nie zostały zasypane błędami. Włącz tę opcję po konwersji każdego pliku do TypeScriptu.

{
  "compilerOptions": {
    "allowJs": true,
    "noImplicitAny": false // Relax for JS files; enable per .ts file
  }
}

Podsumowanie: rozpoczęcie migracji

Rozpocznij migrację od allowJs: true i checkJs: true, używaj @ts-nocheck w przypadku niegotowych plików i śledź postępy, zliczając pliki. Takie podejście pozwala utrzymać możliwość kompilowania projektu podczas stopniowej konwersji plików.

Szybkie sprawdzenie

Co robi checkJs: true bez konieczności konwersji .js do .ts?

Czego się Państwo nauczyli

Rozpocznij migrację z JS do TS od allowJs: true i opcjonalnie checkJs: true. Używaj @ts-nocheck, aby wyciszyć błędy w niegotowych plikach, a następnie konwertuj pliki stopniowo, śledząc postępy na podstawie ich liczby.

Bezpłatny start

Ucz się TypeScript dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
101
Lekcje
352

Często zadawane pytania

Czy lekcja „Rozpoczęcie migracji: allowJs i checkJs” jest bezpłatna?

Tak — pełny tekst „Rozpoczęcie migracji: allowJs i checkJs” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu TypeScript Academy, przejdź na CoddyKit PRO. Kurs TypeScript Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Rozpoczęcie migracji: allowJs i checkJs”?

Włącz sprawdzanie TypeScript w projekcie JavaScript. Ćwiczysz TypeScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć TypeScript Academy?

Nie wymagamy żadnego doświadczenia. TypeScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Rozpoczęcie migracji: allowJs i checkJs”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji TypeScript Academy?

Tak. Każda lekcja TypeScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Rozpoczęcie migracji: allowJs i checkJs
  2. Adnotacje typów JSDoc jako pomost
  3. Strategia konwersji plik po pliku
  4. Praca z nietypowanymi bibliotekami firm trzecich
← Powrót do TypeScript Academy