0Pricing
TypeScript Academy · Lezione

Strategia di conversione file per file

Rinomini progressivamente i file .js in .ts senza interrompere il funzionamento.

Strategia di conversione file per file è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 3 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.

L'approccio incrementale

La conversione file per file rinomina un solo .js alla volta in .ts, correggendo gli errori di tipo man mano. In questo modo il progetto rimane compilabile a ogni passaggio.

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

Scegliere da dove iniziare

Inizi dai moduli foglia, cioè dai file che non importano altri file del progetto. In questo modo non ci sono dipendenze TypeScript a valle da soddisfare per prima cosa.

# 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

Gestire gli errori di any implicito

Quando un file JS viene rinominato in .ts, i parametri privi di tipo diventano errori di any implicito se noImplicitAny: true. Aggiunga tipi espliciti oppure usi temporaneamente 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; }

Sopprimere temporaneamente gli errori

Usi // @ts-ignore sulle righe difficili da correggere e le registri come TODO, così non verranno dimenticate.

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

Aggiornare le istruzioni di importazione

Quando un file diventa .ts, potrebbe essere necessario aggiornare le importazioni nei moduli che lo utilizzano. TypeScript risolve automaticamente i file .ts senza estensione nei percorsi di importazione.

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

Convertire i require di terze parti

Durante la conversione, sostituisca le chiamate CommonJS a require con la sintassi ES module import, in modo da adeguarsi alla risoluzione dei moduli di TypeScript.

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

Progressione verso la modalità strict

Abiliti gradualmente i flag strict per ogni file usando i commenti // @ts-strict-ignore specifici del file oppure eseguendo la migrazione a un tsconfig separato con strict abilitato.

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

Monitorare i file rimanenti

Tenga una checklist oppure usi uno script per contare i file .js rimanenti e monitorare nel tempo i progressi della migrazione.

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

Evitare PR troppo grandi

Converta un file per PR per mantenere le revisioni gestibili. Le migrazioni di grandi codebase TypeScript sono più facili da revisionare e annullare quando sono limitate a singoli file.

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

Eseguire i test dopo ogni conversione

Esegua la suite di test dopo ogni conversione di file per rilevare le regressioni a runtime che il controllo dei tipi di TypeScript potrebbe non individuare.

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

Riepilogo: strategia file per file

Converta prima i file foglia, corregga o sopprima gli errori, mantenga il progetto compilabile a ogni passaggio, monitori i file JS rimanenti e invii una PR per file, così le revisioni resteranno gestibili.

Verifica rapida

Quali file dovrebbe convertire per primi in TypeScript durante una migrazione file per file?

Cosa ha imparato

Migrazione file per file: inizi dai moduli foglia, rinomini il file in .ts, corregga o sopprima gli errori, mantenga il progetto compilabile e monitori i progressi. Conversioni ridotte, una per PR, rendono la migrazione sicura e facile da revisionare.

Domande Frequenti

La lezione «Strategia di conversione file per file» è gratuita?

Sì — il testo completo di «Strategia di conversione file per file» è 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 «Strategia di conversione file per file»?

Rinomini progressivamente i file .js in .ts senza interrompere il funzionamento. 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 3 di 4.

Quanto tempo richiede la lezione «Strategia di conversione file per file»?

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