TypeScript string to number: Guida pratica alla conversione
In questo articolo, vedremo come convertire una stringa in numero in TypeScript, esplorando diverse soluzioni pratiche e utili per gestire questa necessità. Capita spesso, soprattutto quando riceviamo dati dall’utente o da un’API, di dover trasformare una stringa in un numero. Ti guiderò passo dopo passo, con esempi chiari e semplici, spiegando cosa succede in ogni caso.
1. Perché convertire una stringa in numero in TypeScript?
In TypeScript, le stringhe e i numeri sono due tipi di dati distinti. Se proviamo a utilizzare una stringa come numero senza convertirla, otterremo un errore o un risultato inatteso. Ecco alcuni casi d’uso comuni:
- Elaborare input utente: Un modulo di registrazione potrebbe richiedere un’età o un prezzo come input, che verrà letto come stringa.
- Calcoli matematici: Se ricevi numeri come stringhe, devi convertirli prima di eseguire operazioni matematiche.
- Parsing di dati da API: I dati provenienti da API spesso arrivano come stringhe e vanno trasformati in numeri per essere utilizzati.
2. TypeScript string to number: le principali soluzioni
Vediamo le varie opzioni per convertire una stringa in numero in TypeScript.
2.1. Utilizzare parseInt()
parseInt
converte una stringa in un numero intero. Se la stringa contiene caratteri non numerici, smetterà di leggere appena li incontra.
Esempio:
const str = "42";
const num = parseInt(str);
console.log(num); // Output: 42
Dettagli:
- È utile per ottenere solo la parte intera del numero.
- Se la stringa inizia con un carattere non numerico, il risultato sarà
NaN
(Not a Number).
const str = "42abc";
const num = parseInt(str);
console.log(num); // Output: 42
const invalidStr = "abc42";
const numInvalid = parseInt(invalidStr);
console.log(numInvalid); // Output: NaN
2.2. Utilizzare parseFloat()
parseFloat
converte una stringa in un numero decimale (floating point).
Esempio:
const str = "42.5";
const num = parseFloat(str);
console.log(num); // Output: 42.5
Dettagli:
- Ideale per valori con cifre decimali.
- Anche in questo caso, se la stringa inizia con un carattere non numerico, restituirà
NaN
.
2.3. Utilizzare l’operatore +
L’operatore +
davanti a una stringa è il metodo più semplice e diretto per convertirla in numero.
Esempio:
const str = "42";
const num = +str;
console.log(num); // Output: 42
Dettagli:
- È più compatto rispetto a
parseInt
eparseFloat
. - Funziona sia per numeri interi che decimali.
- Restituisce
NaN
se la stringa non può essere convertita in numero.
3. Gestire gli errori durante la conversione
Durante la conversione, potremmo incontrare errori o dati non validi. È importante gestire questi casi per evitare malfunzionamenti.
3.1. Controllare se il risultato è NaN
Possiamo usare la funzione isNaN()
per verificare se il risultato è un numero valido.
Esempio:
const str = "abc";
const num = parseInt(str);
if (isNaN(num)) {
console.log("Valore non valido!");
} else {
console.log(`Il numero è: ${num}`);
}
4. Confronto tra i metodi
Metodo | Descrizione | Supporta decimali | Restituisce NaN per valori non numerici |
---|---|---|---|
parseInt() | Converte in intero | No | Sì |
parseFloat() | Converte in numero decimale | Sì | Sì |
+ (unario) | Conversione semplice e compatta | Sì | Sì |
5. Consigli pratici
- Scegli il metodo giusto in base al tipo di dato che devi convertire:
parseFloat
per valori decimali,parseInt
per interi. - Gestisci sempre i casi di errore utilizzando
isNaN()
. - Evita conversioni non necessarie: se hai già un numero, non c’è bisogno di riconvertirlo.
Conclusione
Abbiamo esplorato come convertire una stringa in numero in TypeScript utilizzando vari metodi come parseInt
, parseFloat
e l’operatore +
. Scegliere il metodo giusto dipende dal contesto e dal tipo di dato che stai gestendo. Assicurati sempre di verificare la validità dei dati per evitare errori.