0Pricing
TypeScript Academy · Lezione

Creazione di un programma TypeScript con l'API

Inizializzi un programma del compilatore e acceda al type checker.

Creazione di un programma TypeScript con l'API è 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.

Che cos'è la Compiler API?

TypeScript espone i propri componenti interni del compilatore tramite il pacchetto npm typescript. È possibile creare programmi, esaminare il type checker e analizzare programmaticamente i file sorgente.

import ts from "typescript";
// Use ts.createProgram to start

Installazione del pacchetto typescript

Installi TypeScript come dipendenza normale, non solo come devDependency, quando utilizza la Compiler API nei propri strumenti.

npm install typescript
# Also install types if needed
npm install --save-dev @types/node

Creazione di un Program

ts.createProgram accetta un array di percorsi dei file di ingresso e le opzioni del compilatore, quindi restituisce un oggetto Program.

import ts from "typescript";
const program = ts.createProgram(["src/index.ts"], {
  target: ts.ScriptTarget.ES2020,
  module: ts.ModuleKind.CommonJS,
  strict: true,
});

Accesso ai file sorgente

Utilizzi program.getSourceFiles() per ottenere tutti i file della compilazione oppure getSourceFile per un percorso specifico.

const sourceFiles = program.getSourceFiles();
sourceFiles.forEach(sf => {
  if (!sf.isDeclarationFile) {
    console.log(sf.fileName);
  }
});

Ottenere il type checker

Il type checker è il componente centrale dell'analisi di TypeScript. Lo ottenga con program.getTypeChecker().

const checker = program.getTypeChecker();
// Now use checker to resolve types, symbols, etc.

Lettura delle diagnosi

Recuperi le diagnosi del compilatore, ovvero errori e avvisi, per implementare strumenti di convalida personalizzati.

const diagnostics = ts.getPreEmitDiagnostics(program);
diagnostics.forEach(d => {
  const msg = ts.flattenDiagnosticMessageText(d.messageText, "
");
  console.log(msg);
});

Lettura di tsconfig.json

Utilizzi ts.readConfigFile e ts.parseJsonConfigFileContent per caricare le opzioni del compilatore da un file tsconfig.

const cfgFile = ts.readConfigFile("tsconfig.json", ts.sys.readFile);
const parsed = ts.parseJsonConfigFileContent(
  cfgFile.config,
  ts.sys,
  process.cwd()
);
const program2 = ts.createProgram(parsed.fileNames, parsed.options);

Risoluzione dei simboli

Il type checker può risolvere i simboli, ovvero i nomi che fanno riferimento alle dichiarazioni, per esaminare a cosa punta un determinato identificatore.

const sf = program.getSourceFile("src/index.ts")!;
ts.forEachChild(sf, node => {
  if (ts.isVariableStatement(node)) {
    const symbol = checker.getSymbolAtLocation(
      node.declarationList.declarations[0].name
    );
    console.log(symbol?.getName());
  }
});

Emissione dell'output

Chiami program.emit() per produrre file JavaScript e file di dichiarazione, proprio come eseguendo tsc.

const emitResult = program.emit();
const exitCode = emitResult.emitSkipped ? 1 : 0;
process.exit(exitCode);

Programmi incrementali

Utilizzi ts.createIncrementalProgram per velocizzare le analisi ripetute riutilizzando lo stato della compilazione precedente.

// Incremental compilation tracks which files changed
// to avoid reprocessing unchanged files

Riepilogo: nozioni di base sulla Compiler API

La Compiler API di TypeScript consente di creare programmi, esaminare i file sorgente, interrogare i tipi tramite il type checker ed emettere JavaScript, tutto dal codice Node.js.

Verifica rapida

Quale metodo restituisce il type checker di TypeScript a partire da un programma?

Cosa ha imparato

La Compiler API di TypeScript inizia con ts.createProgram. Dal programma è possibile accedere ai file sorgente, al type checker e alle diagnosi, nonché emettere l'output: sono le fondamenta per creare linter, generatori di codice e strumenti di analisi.

Domande Frequenti

La lezione «Creazione di un programma TypeScript con l'API» è gratuita?

Sì — il testo completo di «Creazione di un programma TypeScript con l'API» è 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 «Creazione di un programma TypeScript con l'API»?

Inizializzi un programma del compilatore e acceda al type checker. 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 «Creazione di un programma TypeScript con l'API»?

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. Creazione di un programma TypeScript con l'API
  2. Attraversamento dell'AST con i visitor
  3. Transformer personalizzati e generazione del codice
  4. Creazione di un semplice strumento di linting
← Torna a TypeScript Academy