Installazione

L’installazione di TypeScript configura il compilatore e gli strumenti necessari per sviluppare applicazioni type-safe. TypeScript si installa tramite npm o yarn come dipendenza di sviluppo, fornendo il comando tsc per compilazione e strumenti di supporto per integrazione con editor e build systems.
Prerequisiti
TypeScript richiede Node.js e npm installati nel sistema.
# Verifica installazione Node.js
node --version
# Verifica installazione npm
npm --version
# Se necessario, scarica Node.js da nodejs.org
Installazione Globale
Installare TypeScript globalmente per uso da qualsiasi directory.
# Con npm
npm install -g typescript
# Con yarn
yarn global add typescript
# Verifica installazione
tsc --version
# Output esempio: Version 5.3.3
Installazione Locale
Installare TypeScript come dipendenza di progetto (consigliato).
# Inizializza progetto npm
npm init -y
# Installa TypeScript come dev dependency
npm install --save-dev typescript
# Con yarn
yarn add --dev typescript
# Verifica con npx
npx tsc --version
Inizializzazione Progetto
Creare file di configurazione TypeScript per il progetto.
# Genera tsconfig.json
npx tsc --init
# Crea struttura directory
mkdir src
mkdir dist
# File TypeScript di esempio
echo 'console.log("Hello TypeScript");' > src/index.ts
Configurazione Base
File tsconfig.json con configurazione minima funzionale.
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}
Compilazione Base
Compilare file TypeScript in JavaScript.
# Compila tutti i file
npx tsc
# Compila file specifico
npx tsc src/index.ts
# Watch mode (ricompila automaticamente)
npx tsc --watch
# Compila senza generare file (solo type checking)
npx tsc --noEmit
Script NPM
Configurare script npm per comandi comuni.
{
"scripts": {
"build": "tsc",
"watch": "tsc --watch",
"start": "node dist/index.js",
"dev": "tsc && node dist/index.js",
"type-check": "tsc --noEmit"
}
}
# Usa script npm
npm run build
npm run watch
npm run start
Installazione con ts-node
Eseguire TypeScript direttamente senza compilazione esplicita.
# Installa ts-node
npm install --save-dev ts-node
# Esegui file TypeScript
npx ts-node src/index.ts
# Script npm
{
"scripts": {
"dev": "ts-node src/index.ts"
}
}
Integrazione Editor
Configurare editor per supporto TypeScript ottimale.
# VS Code (supporto built-in)
# Installa estensioni consigliate
# - ESLint
# - Prettier
# File .vscode/settings.json
{
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true
}
Definizioni Tipo per Librerie
Installare type definitions per librerie JavaScript.
# Definizioni Node.js
npm install --save-dev @types/node
# Definizioni librerie comuni
npm install --save-dev @types/express
npm install --save-dev @types/react
npm install --save-dev @types/jest
# Ricerca definitions disponibili
npm search @types/<nome-libreria>
Progetto Web Frontend
Setup TypeScript per progetto web frontend.
# Installa dipendenze
npm install --save-dev typescript
# tsconfig.json per browser
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"lib": ["ES2020", "DOM"],
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"moduleResolution": "node",
"esModuleInterop": true
}
}
Progetto Node.js Backend
Setup TypeScript per applicazione Node.js.
# Installa dipendenze
npm install --save-dev typescript @types/node
# tsconfig.json per Node
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"lib": ["ES2020"],
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"esModuleInterop": true,
"resolveJsonModule": true
}
}
Setup con Bundler
Integrazione TypeScript con bundler popolari.
# Webpack con TypeScript
npm install --save-dev webpack webpack-cli ts-loader
# Vite con TypeScript (supporto built-in)
npm create vite@latest my-app -- --template vanilla-ts
# Parcel con TypeScript (supporto built-in)
npm install --save-dev parcel
# esbuild con TypeScript
npm install --save-dev esbuild
Linting e Formatting
Setup ESLint e Prettier per TypeScript.
# ESLint per TypeScript
npm install --save-dev eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin
# Prettier
npm install --save-dev prettier
# .eslintrc.json
{
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended"
]
}
Testing Setup
Configurare framework di testing per TypeScript.
# Jest con TypeScript
npm install --save-dev jest ts-jest @types/jest
# npx ts-jest config:init
# Vitest (supporto TypeScript built-in)
npm install --save-dev vitest
Monorepo Setup
Configurare TypeScript per progetti monorepo.
# Struttura
# /packages/package-a
# /packages/package-b
# Root tsconfig.json
{
"files": [],
"references": [
{ "path": "./packages/package-a" },
{ "path": "./packages/package-b" }
]
}
# packages/package-a/tsconfig.json
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"composite": true,
"outDir": "./dist"
}
}
Verifica Installazione
Testare che installazione funzioni correttamente.
// src/test.ts
const messaggio: string = "TypeScript funziona!";
console.log(messaggio);
interface Utente {
nome: string;
eta: number;
}
const utente: Utente = {
nome: "Mario",
eta: 30,
};
console.log(utente);
# Compila e esegui
npx tsc
node dist/test.js
# Oppure con ts-node
npx ts-node src/test.ts
Aggiornamento TypeScript
Mantenere TypeScript aggiornato alle versioni più recenti.
# Verifica versione corrente
npx tsc --version
# Aggiorna a ultima versione
npm install --save-dev typescript@latest
# Aggiorna globalmente
npm install -g typescript@latest
# Verifica changelog
# https://github.com/microsoft/TypeScript/releases
Troubleshooting Comune
Soluzioni a problemi comuni durante installazione.
# Errore: command not found tsc
# Soluzione: usa npx tsc o installa globalmente
# Errore: Cannot find module
# Soluzione: npm install @types/<modulo>
# Errore: tsconfig.json not found
# Soluzione: npx tsc --init
# Conflitti versione TypeScript
# Soluzione: verifica package.json e node_modules
npm list typescript
# Cache corrotta
npm cache clean --force
rm -rf node_modules
npm install
Conclusioni
L’installazione di TypeScript configura l’ambiente di sviluppo con compilatore, type checker, e strumenti di supporto. Installazione locale come dev dependency garantisce versione consistente per team, mentre tsconfig.json personalizza comportamento del compilatore. Integrazione con editor, bundler, linter, e test framework completa setup production-ready, fornendo fondazione per sviluppo type-safe di applicazioni frontend, backend, o full-stack con TypeScript.