0Pricing
TypeScript Academy · Lezione

Controllo dei tipi in CI: strategie e strumenti

Esegua i controlli dei tipi in modo efficiente nelle pipeline di integrazione continua.

Controllo dei tipi in CI: strategie e strumenti è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento TypeScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso TypeScript Academy include 4 lezioni in totale.

Perché eseguire il controllo dei tipi in CI?

Eseguire i controlli dei tipi di TypeScript in CI rileva gli errori di tipo che gli sviluppatori non individuano localmente, soprattutto nei team numerosi in cui le modifiche a un pacchetto possono causare problemi in un altro.

# Simple CI type check step
npx tsc --noEmit

Flag --noEmit

tsc --noEmit esegue il controllo completo dei tipi, ma salta l'output JavaScript: è ideale per il controllo dei tipi in CI senza generare file.

# GitHub Actions step
- name: Type Check
  run: npx tsc --noEmit

Controllo incrementale dei tipi in CI

Utilizzi --incremental con la cache di CI per ripristinare il file .tsbuildinfo, così vengono ricontrollati solo i file modificati.

# Cache .tsbuildinfo in CI (GitHub Actions)
- uses: actions/cache@v3
  with:
    path: .tsbuildinfo
    key: tsc-${{ hashFiles('src/**/*.ts') }}

Riferimenti ai progetti in CI

In un monorepo, tsc --build --noEmit controlla i tipi di tutti i pacchetti rispettando le dipendenze tra i riferimenti ai progetti.

# Type-check all project references
npx tsc --build --noEmit

Controllo dei soli tipi interessati con Nx

Nx può rilevare quali pacchetti sono interessati da una PR e controllare i tipi solo di quelli, saltando i pacchetti invariati.

# Only type-check affected projects
npx nx affected --target=typecheck --base=origin/main

Controllo dei tipi con Turborepo

Aggiunga uno script typecheck a ogni pacchetto ed esegua lo script tramite Turborepo con caching e parallelizzazione.

// package.json
{ "scripts": { "typecheck": "tsc --noEmit" } }

// turbo.json pipeline
{ "typecheck": { "dependsOn": ["^typecheck"], "outputs": [] } }

// Run:
npx turbo typecheck

Eseguire i controlli dei tipi in parallelo

Per i pacchetti indipendenti, esegua i controlli dei tipi in parallelo con strumenti come concurrently o npm-run-all.

npx concurrently \
  "tsc -p packages/core/tsconfig.json --noEmit" \
  "tsc -p packages/ui/tsconfig.json --noEmit"

Interrompere la CI in presenza di errori di tipo

Si assicuri che la CI fallisca in presenza di qualsiasi errore TypeScript controllando il codice di uscita. tsc --noEmit termina con il codice 1 quando sono presenti errori.

# CI step — fails if tsc exits 1
- name: Type Check
  run: npx tsc --noEmit
  # No continue-on-error: true here

Controllare i tipi solo nelle pull request

Utilizzi GitHub Actions per eseguire i controlli dei tipi solo sui file modificati in una PR, riducendo il tempo di CI nei repository di grandi dimensioni.

# Use ts-affected or custom script to detect changed TS files
# Then run tsc only for affected tsconfig projects

Segnalare gli errori di tipo nei commenti delle PR

Strumenti come danger-js possono analizzare l'output di tsc e pubblicare gli errori di tipo come commenti inline nella revisione della PR, migliorandone la visibilità.

// dangerfile.ts
import { danger, fail } from "danger";
// Parse tsc --noEmit output and report errors inline

Riepilogo: controllo dei tipi in CI

Esegua tsc --noEmit in CI per garantire la correttezza. Utilizzi --incremental e la cache per aumentare la velocità. Nei monorepo utilizzi tsc --build, Turborepo o l'analisi degli elementi interessati di Nx per ridurre al minimo il lavoro per ogni PR.

Verifica rapida

Quale flag di tsc esegue il controllo dei tipi senza generare file di output?

Che cosa ha imparato

Il controllo dei tipi in CI utilizza tsc --noEmit per verificare la correttezza senza generare file. Lo combini con --incremental, i riferimenti ai progetti e gli strumenti di caching, come Turborepo e Nx, per controlli dei tipi veloci e scalabili nei monorepo di grandi dimensioni.

Domande Frequenti

La lezione «Controllo dei tipi in CI: strategie e strumenti» è gratuita?

Sì — il testo completo di «Controllo dei tipi in CI: strategie e strumenti» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso TypeScript Academy, passa a CoddyKit PRO. Il corso TypeScript Academy include 4 lezioni in totale.

Cosa imparerò in «Controllo dei tipi in CI: strategie e strumenti»?

Esegua i controlli dei tipi in modo efficiente nelle pipeline di integrazione continua. Eserciti TypeScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare TypeScript Academy?

Non è richiesta alcuna esperienza precedente. TypeScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Controllo dei tipi in CI: strategie e strumenti»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione TypeScript Academy?

Sì. Ogni lezione TypeScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Profilazione della compilazione lenta di TypeScript
  2. Come evitare operazioni costose sui tipi
  3. skipLibCheck e dichiarazioni isolate
  4. Controllo dei tipi in CI: strategie e strumenti
← Torna a TypeScript Academy