Sprawdzanie typów w CI: strategie i narzędzia
Wydajnie uruchamiaj sprawdzanie typów w potokach ciągłej integracji.
Sprawdzanie typów w CI: strategie i narzędzia to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 4 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.
Dlaczego sprawdzać typy w CI
Uruchamianie sprawdzania typów TypeScript w CI pozwala wykrywać błędy typów, które deweloperzy przeoczyli lokalnie, szczególnie w dużych zespołach, w których zmiany w jednym pakiecie mogą zepsuć inny pakiet.
# Simple CI type check step
npx tsc --noEmitFlaga --noEmit
tsc --noEmit uruchamia pełne sprawdzanie typów, ale pomija generowanie kodu JavaScript — idealnie nadaje się do sprawdzania typów w CI bez tworzenia plików.
# GitHub Actions step
- name: Type Check
run: npx tsc --noEmitPrzyrostowe sprawdzanie typów w CI
Należy użyć --incremental wraz z buforowaniem w CI, aby przywracać plik .tsbuildinfo i ponownie sprawdzać tylko zmienione pliki.
# Cache .tsbuildinfo in CI (GitHub Actions)
- uses: actions/cache@v3
with:
path: .tsbuildinfo
key: tsc-${{ hashFiles('src/**/*.ts') }}Odwołania do projektów w CI
W monorepozytorium polecenie tsc --build --noEmit sprawdza typy we wszystkich pakietach, uwzględniając zależności wynikające z odwołań do projektów.
# Type-check all project references
npx tsc --build --noEmitSprawdzanie tylko zmienionych elementów za pomocą Nx
Nx może wykryć, które pakiety uległy zmianie w wyniku pull requestu, i sprawdzić typy tylko w tych pakietach, pomijając pakiety niezmienione.
# Only type-check affected projects
npx nx affected --target=typecheck --base=origin/mainSprawdzanie typów za pomocą Turborepo
Należy dodać skrypt typecheck do każdego pakietu i uruchamiać go za pośrednictwem Turborepo z buforowaniem i wykonywaniem równoległym.
// package.json
{ "scripts": { "typecheck": "tsc --noEmit" } }
// turbo.json pipeline
{ "typecheck": { "dependsOn": ["^typecheck"], "outputs": [] } }
// Run:
npx turbo typecheckRównoległe sprawdzanie typów
W przypadku niezależnych pakietów należy uruchamiać sprawdzanie typów równolegle za pomocą narzędzi takich jak concurrently lub npm-run-all.
npx concurrently \
"tsc -p packages/core/tsconfig.json --noEmit" \
"tsc -p packages/ui/tsconfig.json --noEmit"Kończenie CI błędem w przypadku błędów typów
Należy upewnić się, że CI kończy się niepowodzeniem w przypadku dowolnego błędu TypeScript, sprawdzając kod wyjścia. tsc --noEmit kończy działanie z kodem 1, gdy występują błędy.
# CI step — fails if tsc exits 1
- name: Type Check
run: npx tsc --noEmit
# No continue-on-error: true hereSprawdzanie typów tylko dla pull requestów
Należy użyć GitHub Actions do uruchamiania sprawdzania typów tylko dla plików zmienionych w pull requeście, aby skrócić czas CI w dużych repozytoriach.
# Use ts-affected or custom script to detect changed TS files
# Then run tsc only for affected tsconfig projectsRaportowanie błędów typów jako komentarzy do PR
Narzędzia takie jak danger-js mogą analizować dane wyjściowe tsc i publikować błędy typów jako komentarze w tekście podczas przeglądu PR, zapewniając lepszą widoczność problemów.
// dangerfile.ts
import { danger, fail } from "danger";
// Parse tsc --noEmit output and report errors inlinePodsumowanie: sprawdzanie typów w CI
W CI należy uruchamiać tsc --noEmit, aby zapewnić poprawność. Dla zwiększenia szybkości należy użyć --incremental i buforowania. W monorepozytoriach warto używać tsc --build, Turborepo lub analizy zmienionych elementów Nx, aby ograniczyć pracę wymaganą dla każdego PR.
Szybkie sprawdzenie
Która flaga tsc sprawdza typy bez generowania jakichkolwiek plików wyjściowych?
Czego się Państwo nauczyli
Sprawdzanie typów w CI wykorzystuje tsc --noEmit do weryfikacji poprawności bez generowania plików. W przypadku dużych monorepozytoriów należy połączyć je z --incremental, odwołaniami do projektów i narzędziami do buforowania, takimi jak Turborepo i Nx, aby uzyskać szybkie i skalowalne sprawdzanie typów.
Często zadawane pytania
Czy lekcja „Sprawdzanie typów w CI: strategie i narzędzia” jest bezpłatna?
Tak — pełny tekst „Sprawdzanie typów w CI: strategie i narzędzia” 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 „Sprawdzanie typów w CI: strategie i narzędzia”?
Wydajnie uruchamiaj sprawdzanie typów w potokach ciągłej integracji. Ć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 4 z 4.
Ile czasu zajmuje lekcja „Sprawdzanie typów w CI: strategie i narzędzia”?
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
- Profilowanie powolnej kompilacji TypeScript
- Unikanie kosztownych operacji na typach
- skipLibCheck i izolowane deklaracje
- Sprawdzanie typów w CI: strategie i narzędzia