0Pricing
TypeScript Academy · Lekcja

Strategia konwersji plik po pliku

Stopniowo zmieniaj rozszerzenie .js na .ts, nie powodując problemów.

Strategia konwersji plik po pliku to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 3 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.

Podejście stopniowe

Konwersja plik po pliku polega na zmianie nazwy pojedynczego .js na .ts i naprawianiu błędów typów na bieżąco. Dzięki temu projekt można kompilować na każdym etapie.

# Step 1: rename
mv src/utils.js src/utils.ts
# Step 2: fix errors
npx tsc --noEmit
# Step 3: commit and repeat

Wybór miejsca rozpoczęcia

Rozpocznij od modułów liściowych — plików, które nie importują innych plików projektu. Nie mają one zależności TypeScriptu w kolejnych modułach, które trzeba byłoby najpierw spełnić.

# Find files with fewest imports from other project files:
grep -r "from './" src --include="*.js" | sort | uniq -c | sort -n
# Convert lowest-count files first

Obsługa błędów implicit any

Po zmianie nazwy pliku JS na .ts parametry bez typów stają się błędami implicit any, jeśli ustawiono noImplicitAny: true. Dodaj jawne typy albo tymczasowo użyj any.

// Before: JS
function process(data) { return data.value; }

// After: TS (add annotation)
function process(data: { value: string }) { return data.value; }
// Or temporarily:
function process(data: any) { return data.value; }

Tymczasowe pomijanie błędów

Używaj // @ts-ignore w trudnych do naprawienia liniach i zapisuj je jako zadania TODO, aby o nich nie zapomnieć.

// TODO: type this properly in follow-up PR
// @ts-ignore
const result = complexLegacyFunction(x);

Aktualizowanie instrukcji importu

Gdy plik staje się plikiem .ts, w jego odbiorcach może być konieczna aktualizacja importów. TypeScript automatycznie rozpoznaje pliki .ts bez rozszerzeń w ścieżkach importu.

// No extension needed — TypeScript finds .ts
import { process } from "./utils";

Konwersja wywołań require z bibliotek zewnętrznych

Podczas konwersji zastępuj wywołania CommonJS require składnią import modułów ES, aby dopasować ją do sposobu rozwiązywania modułów przez TypeScript.

// Before: CommonJS
const fs = require("fs");
// After: ES module
import fs from "fs";

Stopniowe włączanie trybu strict

Włączaj opcje strict stopniowo dla poszczególnych plików, używając komentarzy // @ts-strict-ignore dla pojedynczych plików albo migrując do osobnego pliku tsconfig z włączonym trybem strict.

// tsconfig.strict.json — points to converted files only
{
  "extends": "./tsconfig.json",
  "compilerOptions": { "strict": true },
  "include": ["src/converted/**/*"]
}

Śledzenie pozostałych plików

Prowadź listę kontrolną albo użyj skryptu do zliczania pozostałych plików .js i śledzenia postępów migracji w czasie.

find src -name "*.js" | wc -l   # remaining JS files
find src -name "*.ts" | wc -l   # converted TS files

Unikanie dużych PR-ów

Konwertuj jeden plik na jeden PR, aby ułatwić przeglądy. Duże migracje do TypeScriptu łatwiej przeglądać i wycofywać, gdy są ograniczone do pojedynczych plików.

# Good: one file per PR
# Bad: 50 files renamed in one PR

Uruchamianie testów po każdej konwersji

Uruchamiaj zestaw testów po konwersji każdego pliku, aby wykrywać regresje w czasie działania programu, których narzędzie sprawdzające typy TypeScriptu może nie wykryć.

npm test
# Ensure all tests pass after each .js → .ts rename

Podsumowanie: strategia plik po pliku

Najpierw konwertuj pliki liściowe, naprawiaj lub pomijaj błędy, utrzymuj możliwość kompilowania projektu na każdym etapie, śledź pozostałe pliki JS i zgłaszaj jeden plik na każdy PR, aby ułatwić przeglądy.

Szybkie sprawdzenie

Które pliki należy najpierw przekonwertować do TypeScriptu podczas migracji plik po pliku?

Czego się Państwo nauczyli

Migracja plik po pliku: rozpocznij od modułów liściowych, zmień nazwę na .ts, napraw lub pomiń błędy, utrzymuj możliwość kompilowania projektu i śledź postępy. Niewielkie konwersje realizowane w osobnych PR-ach sprawiają, że migracja jest bezpieczna i łatwa do przeglądania.

Często zadawane pytania

Czy lekcja „Strategia konwersji plik po pliku” jest bezpłatna?

Tak — pełny tekst „Strategia konwersji plik po pliku” 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 „Strategia konwersji plik po pliku”?

Stopniowo zmieniaj rozszerzenie .js na .ts, nie powodując problemów. Ć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 3 z 4.

Ile czasu zajmuje lekcja „Strategia konwersji plik po pliku”?

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