Numbers
Clase 9 de 24 • Curso de TypeScript
Resumen
El tipo de dato number
se usa para variables que contendrán números positivos, negativos o decimales.
Operaciones
En JavaScript, una variable de tipo number
puede fácilmente ser concatenado con otra de tipo string
:
//JavaScript
let myNumber = 30;
myNumber = myNumber + "5"; //El resultado sería '305'
Sin embargo, esto podría llevar confusiones y errores durante la ejecución del programa, además de estar cambiando el tipo de dato de la variable. Por ello, en TypeScript solo se pueden hacer operaciones numéricas entre números valga la redundancia:
//TypeScript
let myNumber: number = 30;
myNumber = myNumber + 10; //CORRECTO
myNumber = myNumber + "10"; //INCORRECTO
Uso de variables sin inicializar
- Serán señalados como errores aquellas variables que queramos usar sin haberles dado un valor inicial:
//TypeScript
let productInStock: number;
console.log("Product in stock: " + productInStock);
Señalar que si no se va a inicializar aún la variable, definir explícitamente el tipo de dato, pues TypeScript no puede inferirlo si no tiene un valor inicial.
Conversión de números de tipo string a tipo number
Para esto usaremos el método parseInt
:
let discount: number = parseInt("123");
let numeroString: string = "100";
let nuevoNumero: number;
nuevoNumero = parseInt(numeroString);
Esto funciona si el string tiene solo y exclusivamente números que no empiecen con 0. De lo contrario, el resultado será de tipo NaN
(Not a Number):
//TypeScript
let numeroPrueba: number = parseInt("palabra");
console.log(numeroPrueba); //NaN
Binarios y Hexadecimales
TypeScript nos puede indicar error si intentamos definir números binarios que tengan números que no sean 0 o 1 y si declaramos hexadecimales usando valores fuera del rango:
//**********TypeScript**********
//Binarios: se definen colocando "0b" al inicio del valor
let primerBinario = 0b1010; //CORRECTO
let segundobinario = 0b1210; //INCORRECTO. El 2 es inválido
//Hexadecimales: se definen colocando "0x" al inicio del valor
let primerHexa = 0xfff; //CORRECTO
let segundoHexa = 0xffz; //INCORRECTO. El "z" es inválido
En consola, si están correctamente asignados, se hará una conversión a decimal de dichos números:
let primerHexa = 0xfff;
console.log(primerHexa); // 4095
let primerBinario = 0b1010;
console.log(primerBinario); // 10
Consejo
Cuando definas una variable de tipo de dato number
, es preferible que el nombre de tipo sea en minúscula. Esto como buena práctica, pues se hará referencia al tipo de dato number
y no al objeto Number
propio del lenguaje:
let myNumber: number = 20; // Buena practica.
let otherNumber: Number = 20; // Mala practica.
Contribución creada por: Martín Álvarez.