Vai al contenuto
eLearner.app
Modulo 7 · Lezione 1 di 213/14 nel corso~12 min
Lezioni del modulo (1/2)

Configurazione con tsconfig.json

Il file tsconfig.json definisce la directory radice del progetto TypeScript e specifica le opzioni di compilazione necessarie per compilare il progetto.

Quando esegui tsc nella cartella di un progetto, il compilatore cerca questo file per capire come comportarsi.


Struttura del file tsconfig.json

Un file di configurazione tipico si presenta così:

Code
{
  "compilerOptions": {
    "target": "es2022",
    "module": "commonjs",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "outDir": "./dist"
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "**/*.spec.ts"]
}

Le chiavi principali sono:

  • compilerOptions: Le impostazioni per il compilatore.
  • include: I file o le cartelle che devono essere compilati.
  • exclude: I file o le cartelle da ignorare durante la compilazione.

Opzioni del Compilatore Chiave

Ecco le opzioni più importanti da conoscere:

  1. target: Specifica la versione di JavaScript generata in output (es. es5, es6/es2015, es2020, esnext).
  2. module: Specifica il sistema di moduli da usare nell'output (es. commonjs, esnext, node16).
  3. strict: Abilita un ampio gruppo di controlli di tipo rigorosi. È altamente raccomandato impostarlo a true per massimizzare la sicurezza del codice. Abilita opzioni come:
    • noImplicitAny: Genera un errore se manca l'annotazione di tipo per parametri che altrimenti verrebbero dedotti come any.
    • strictNullChecks: Impedisce l'assegnazione di null o undefined a tipi che non li prevedono esplicitamente nella loro unione.

Prova tu

Esercizio 1: Gestione di strictNullChecks

Esercizio#ts.m7.l1.e1
Tentativi: 0Caricamento…

Sotto l'opzione strictNullChecks: true del file tsconfig.json, non possiamo assegnare null o undefined a tipi primitivi. Dichiara una funzione chiamata parseAge che accetta input di tipo string | null e restituisce un number se input non è nullo ed è un intero valido, altrimenti restituisce 0. Gestisci esplicitamente il caso null per superare la compilazione strict.

Caricamento editor…
Mostra suggerimento

Verifica se input è null all'inizio della funzione e ritorna subito 0 prima di processare la stringa.

Soluzione disponibile dopo 3 tentativi

Esercizio 2: Tipizzazione Rigida senza Implicit Any

Esercizio#ts.m7.l1.e2
Tentativi: 0Caricamento…

Sotto noImplicitAny: true, ogni parametro di cui non è possibile inferire il tipo deve essere tipizzato esplicitamente. Crea una funzione chiamata processItems che accetta un array items (array di numeri) e una funzione callback che prende un singolo numero come argomento e non restituisce nulla. Assicurati di non usare any e tipizzare tutto esplicitamente.

Caricamento editor…
Mostra suggerimento

Dichiara la funzione con signature function processItems(items: number[], callback: (item: number) => void): void.

Soluzione disponibile dopo 3 tentativi