0Pricing
TypeScript Academy · Lekcja

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 --noEmit

Flaga --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 --noEmit

Przyrostowe 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 --noEmit

Sprawdzanie 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/main

Sprawdzanie 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 typecheck

Ró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 here

Sprawdzanie 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 projects

Raportowanie 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 inline

Podsumowanie: 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

  1. Profilowanie powolnej kompilacji TypeScript
  2. Unikanie kosztownych operacji na typach
  3. skipLibCheck i izolowane deklaracje
  4. Sprawdzanie typów w CI: strategie i narzędzia
← Powrót do TypeScript Academy