TypeScript Academy · Lezione

Avvio della migrazione: allowJs e checkJs

Abiliti il controllo TypeScript in un progetto JavaScript.

Lezione 1 di 413 passaggi

Avvio della migrazione: allowJs e checkJs è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 1 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.

La sfida della migrazione

Migrare tutto in una volta un'ampia codebase JavaScript a TypeScript è rischioso. L'approccio incrementale consiste nell'abilitare gradualmente TypeScript, un file alla volta, mantenendo il progetto funzionante.

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

Passaggio 1: installare TypeScript

Aggiunga TypeScript al progetto e crei inizialmente un tsconfig minimo, senza la modalità strict.

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

allowJs: true

Con allowJs: true, TypeScript include i file .js nella compilazione. Il controllo dei tipi è permissivo: la maggior parte del codice JavaScript viene compilata senza errori.

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

checkJs: true

checkJs: true abilita il controllo dei tipi per i file JavaScript usando i tipi inferiti e le annotazioni JSDoc. In questo modo vengono rilevati i bug più evidenti senza dover convertire i file .ts.

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

Sopprimere gli errori con @ts-nocheck

Aggiunga // @ts-nocheck all'inizio dei file JS problematici per sopprimere tutti gli errori di TypeScript mentre lavora gradualmente alla migrazione.

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

Soppressione degli errori per riga

Usi // @ts-ignore per sopprimere l'errore di una singola riga senza disabilitare il controllo per l'intero file.

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

maxNodeModuleJsDepth

Per impostazione predefinita, TypeScript controlla solo i file JS presenti nel progetto. Imposti maxNodeModuleJsDepth per controllare la profondità con cui verifica i file JS in node_modules.

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

Compilare JS nella cartella dist

Con allowJs, il compilatore TypeScript può anche transpilerare i file JS, cosa utile per applicare i polyfill e supportare in modo uniforme gli ambienti meno recenti.

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

Misurare i progressi

Monitori i progressi della migrazione contando i file .js rispetto ai file .ts. Fissi un obiettivo per la percentuale di file da convertire in ogni sprint.

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

Evitare la regressione dei tipi

Mantenga inizialmente noImplicitAny: false per evitare che i file JS esistenti producano una valanga di errori. Lo abiliti dopo aver convertito ogni file in TypeScript.

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

Riepilogo: iniziare la migrazione

Inizi la migrazione con allowJs: true e checkJs: true, usi @ts-nocheck per i file non ancora pronti e monitori i progressi contando i file. Questo approccio mantiene il progetto compilabile mentre converte i file in modo incrementale.

Verifica rapida

Che cosa fa checkJs: true senza richiedere la conversione da .js a .ts?

Cosa ha imparato

Inizi la migrazione da JS a TS con allowJs: true e, facoltativamente, checkJs: true. Usi @ts-nocheck per silenziare i file non ancora pronti e li converta gradualmente, monitorando i progressi in base al numero di file.

Gratis per iniziare

Impara TypeScript con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
101
Lezioni
352

Domande Frequenti

La lezione «Avvio della migrazione: allowJs e checkJs» è gratuita?

Sì — il testo completo di «Avvio della migrazione: allowJs e checkJs» è 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 «Avvio della migrazione: allowJs e checkJs»?

Abiliti il controllo TypeScript in un progetto JavaScript. 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 1 di 4.

Quanto tempo richiede la lezione «Avvio della migrazione: allowJs e checkJs»?

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. Avvio della migrazione: allowJs e checkJs
  2. Annotazioni di tipo JSDoc come collegamento
  3. Strategia di conversione file per file
  4. Gestione delle librerie di terze parti senza tipi
← Torna a TypeScript Academy