TypeScript per Sviluppatori JavaScript
TypeScript non rimpiazza JavaScript: lo estende. Aggiunge un sistema di tipi che il compilatore verifica prima che il codice arrivi nel browser, spostando gli errori dal runtime al momento dello sviluppo.
Perché TypeScript
In progetti con più sviluppatori o codebase di dimensioni medie, TypeScript riduce drasticamente il debugging. Gli errori di tipo — passare una stringa dove serve un numero, accedere a una proprietà che non esiste — vengono catturati nell’editor, non in produzione.
Tipi base e annotazioni
TypeScript aggiunge annotazioni di tipo opzionali che il compilatore usa per verificare la correttezza:
function somma(a: number, b: number): number {
return a + b;
}
const nome: string = "Mario";
const attivo: boolean = true;
const tag: string[] = ["html", "css", "js"];
I tipi unknown e never sono più sicuri di any: usare any disabilita il controllo dei tipi e vanifica il vantaggio di TypeScript.
Interfacce e Type Alias
Le interfacce definiscono la forma di un oggetto. Il ? indica proprietà opzionali:
interface Utente {
id: number;
nome: string;
email?: string;
}
type Stato = "attivo" | "inattivo" | "sospeso";
Generics
I generics rendono funzioni e classi riutilizzabili senza perdere la sicurezza dei tipi:
function primo<T>(arr: T[]): T | undefined {
return arr[0];
}
const n = primo([1, 2, 3]); // type: number | undefined
const s = primo(["a", "b"]); // type: string | undefined
Integrazione con i framework
React, Vue 3 e Angular supportano TypeScript nativamente. Il setup con Vite aggiunge TypeScript a qualsiasi progetto con un solo flag. I framework frontend moderni includono type definitions aggiornate che migliorano l’autocompletamento nell’editor.
TypeScript non rallenta lo sviluppo: rallenta il debugging, che è la parte più cara.
La base è la conoscenza approfondita di JavaScript moderno: TypeScript compila in JavaScript, e capire l’output aiuta a comprendere il comportamento reale. Per la configurazione dell’ambiente di sviluppo, l’articolo sugli editor e IDE mostra come sfruttare IntelliSense e il language server TypeScript al massimo.