Lezioni del modulo (1/2)
Tipi primitivi e annotazioni
TypeScript è un superset tipizzato di JavaScript, il che significa che aggiunge una sintassi per i tipi statici sopra la sintassi JavaScript esistente. A runtime, tutto il codice TypeScript viene compilato in puro JavaScript e i tipi scompaiono completamente durante la build.
Grazie a TypeScript, puoi rilevare errori prima che il codice venga eseguito nel browser, rendendo lo sviluppo più robusto, sicuro e scalabile.
I Tipi Primitivi
TypeScript supporta i tipi primitivi standard di JavaScript:
string: Rappresenta sequenze di caratteri (es.'Alice',"Hello").number: Rappresenta valori numerici, sia interi che decimali (es.42,3.14).boolean: Rappresenta valori di verità (trueofalse).nulleundefined: Rappresentano l'assenza intenzionale o involontaria di un valore.
const username: string = 'Alice';
const score: number = 100;
const isActive: boolean = true;Annotazione delle Variabili e Inferenza
In TypeScript, possiamo aggiungere un'annotazione di tipo inserendo i due punti (:) seguiti dal tipo.
Se provi ad assegnare un valore di tipo diverso (ad esempio, assegnare una stringa ad age definita come number), il compilatore TypeScript segnalerà immediatamente un errore prima dell'esecuzione.
Il Pericolo del Tipo any
Il tipo any è un tipo speciale che indica a TypeScript di disattivare il controllo dei tipi per una determinata variabile.
let data: any = 42;
data = 'Hello'; // Nessun errore!
data.nonExistentMethod(); // Nessun errore a tempo di compilazione, ma crash a runtime!Usare any annulla tutti i vantaggi di sicurezza offerti da TypeScript. È considerata una pessima pratica da evitare quasi sempre nel codice di produzione.
Annotazione delle Funzioni e il Tipo void
Possiamo annotare sia i parametri che il valore di ritorno di una funzione:
function calculateTax(price: number, taxRate: number): number {
return price * taxRate;
}Se una funzione non restituisce alcun valore (ad esempio, effettua solo un console.log), il suo tipo di ritorno è void:
function logMessage(message: string): void {
console.log(message);
}Prova tu
Esercizio 1: Variabili Tipizzate
Dichiara tre variabili tipizzate esplicitamente: username come stringa con valore 'Alice', score come numero con valore 100, e isActive come booleano con valore true. Non usare il tipo any.
Mostra suggerimento
Usa la sintassi : string, : number, e : boolean dopo il nome di ogni variabile.
Soluzione disponibile dopo 3 tentativi
Esercizio 2: Funzione di Saluto
Crea una funzione chiamata greet che accetta un parametro name di tipo stringa e restituisce una stringa nel formato 'Hello, ' seguito dal nome. Specifica esplicitamente sia il tipo del parametro che il tipo di ritorno.
Mostra suggerimento
Dichiara la funzione come function greet(name: string): string { ... } e ritorna il messaggio.
Soluzione disponibile dopo 3 tentativi
Esercizio 3: Convertitore di Temperatura
Dichiara una funzione chiamata celsiusToFahrenheit che accetta un parametro celsius di tipo numero e restituisce la temperatura equivalente in gradi Fahrenheit (numero). La formula è celsius * 9 / 5 + 32. Specifica esplicitamente sia il tipo del parametro che il tipo di ritorno.
Mostra suggerimento
Moltiplica celsius per 9, dividi per 5, aggiungi 32 e restituisci il risultato con l'annotazione : number sulla funzione.
Soluzione disponibile dopo 3 tentativi
Esercizio 4: Calcolo dello Sconto
Crea una funzione chiamata calculateDiscount che accetta un parametro price di tipo numero e un parametro discountPercent di tipo numero, e restituisce il prezzo finale scontato come numero. Specifica esplicitamente sia i tipi dei parametri che il tipo di ritorno.
Mostra suggerimento
Sottrai la percentuale di sconto divisa per 100 da 1, poi moltiplica per il prezzo iniziale. Assicurati di annotare parametri e ritorno come number.
Soluzione disponibile dopo 3 tentativi