TypeScript Number

TypeScript, similar a JavaScript, admite el objeto Number.

En TypeScript, el objeto Number se utiliza para envolver tipos numéricos.

El objeto Number es un objeto envoltorio del valor numérico primitivo.

Al igual que el objeto String, el objeto Number es un tipo de referencia, que difiere del tipo básico number.

Aunque el objeto Number proporciona algunas propiedades y métodos adicionales, en TypeScript se recomienda usar directamente el tipo básico number, porque el objeto Number conlleva una sobrecarga de rendimiento y confusión de tipos.

Sintaxis

var num = new Number(value);

Tenga en cuenta que esto crea un objeto de tipo referencia, no un tipo básico number.

Nota:Si un valor de parámetro no se puede convertir a un número, se devolverá NaN (valor no numérico).

Diferencia entre el objeto Number y el tipo básico number

  • Tipo básiconumber: tipo de dato primitivo, utilizado para almacenar valores numéricos.
  • NumberObjeto: tipo de referencia, es un objeto envoltorio que envuelve valores numéricos básicos.

Ejemplo

let numLiteral: number = 42;
let numObject: Number = new Number(42);

console.log(typeof numLiteral); // Salida: "number"
console.log(typeof numObject);  // Salida: "object"

Propiedades del objeto Number

La siguiente tabla enumera las propiedades admitidas por el objeto Number:

N.º Propiedad y descripción
1.

MAX_VALUE

El número más grande representable, el valor de la propiedad MAX_VALUE se aproxima a 1.79E+308. Los valores mayores que MAX_VALUE representan "Infinity".

2.

MIN_VALUE

El número más pequeño representable, es decir, el número positivo más cercano a 0 (en realidad no se convierte en 0). El número negativo más grande es -MIN_VALUE, y el valor de MIN_VALUE es aproximadamente 5e-324. Los valores menores que MIN_VALUE ("underflow values") se convertirán en 0.

3.

NaN

Valor no numérico (Not-A-Number).

4.

NEGATIVE_INFINITY

Infinito negativo; este valor se devuelve cuando hay desbordamiento. Este valor es menor que MIN_VALUE.

5.

POSITIVE_INFINITY

Infinito positivo; este valor se devuelve cuando hay desbordamiento. Este valor es mayor que MAX_VALUE.

6.

prototype

Propiedad estática del objeto Number. Le permite agregar propiedades y métodos al objeto.

7.

constructor

Devuelve una referencia a la función Number que creó este objeto.

TypeScript

console.log("Propiedades de Number en TypeScript:"); console.log("El valor máximo es:" + Number.MAX_VALUE); console.log("El valor mínimo es:" + Number.MIN_VALUE); console.log("Infinito negativo:" + Number.NEGATIVE_INFINITY); console.log("Infinito positivo:" + Number.POSITIVE_INFINITY);

Al compilar el código anterior, se obtiene el siguiente código JavaScript:

JavaScript

console.log("Propiedades de Number en TypeScript:"); console.log("El valor máximo es:" + Number.MAX_VALUE); console.log("El valor mínimo es:" + Number.MIN_VALUE); console.log("Infinito negativo:" + Number.NEGATIVE_INFINITY); console.log("Infinito positivo:" + Number.POSITIVE_INFINITY);

El resultado es:

TypeScript Number 属性:
最大值为: 1.7976931348623157e+308
最小值为: 5e-324
负无穷大: -Infinity
正无穷大:Infinity

Ejemplo de NaN

TypeScript

var month = 0 if( month<=0 || month >12) { month = Number.NaN console.log("El mes es:"+ month) } else { console.log("El valor del mes ingresado es correcto.") }

Al compilar el código anterior, se obtiene el siguiente código JavaScript:

JavaScript

var month = 0; if (month <= 0 || month > 12) { month = Number.NaN; console.log("El mes es:" + month); } else { console.log("El valor del mes ingresado es correcto."); }

El resultado es:

月份是:NaN

Ejemplo de prototype

TypeScript

function employee(id:number,name:string) { this.id = id this.name = name } var emp = new employee(123,"admin") employee.prototype.email = "[email protected]" console.log("Número de empleado:"+emp.id) console.log("Nombre del empleado:"+emp.name) console.log("Correo electrónico del empleado:"+emp.email)

Al compilar el código anterior, se obtiene el siguiente código JavaScript:

JavaScript

function employee(id, name) { this.id = id; this.name = name; } var emp = new employee(123, "admin"); employee.prototype.email = "[email protected]"; console.log("Número de empleado:" + emp.id); console.log("Nombre del empleado:" + emp.name); console.log("Correo electrónico del empleado:" + emp.email);

El resultado es:

员工号: 123
员工姓名: admin
员工邮箱: [email protected]

Métodos del objeto Number

El objeto Number admite los siguientes métodos:

N.º Método y descripción Ejemplo
1. toExponential()

Convierte el valor del objeto a notación exponencial.

//toExponential() 
var num1 = 1225.30 
var val = num1.toExponential(); 
console.log(val) // 输出: 1.2253e+3
2. toFixed()

Convierte un número en una cadena y especifica el número de decimales.

var num3 = 177.234 
console.log("num3.toFixed() 为 "+num3.toFixed())    // 输出:177
console.log("num3.toFixed(2) 为 "+num3.toFixed(2))  // 输出:177.23
console.log("num3.toFixed(6) 为 "+num3.toFixed(6))  // 输出:177.234000
3. toLocaleString()

Convierte un número en una cadena, utilizando el formato numérico local.

var num = new Number(177.1234); 
console.log( num.toLocaleString());  // 输出:177.1234
4. toPrecision()

Formatea un número con la longitud especificada.

var num = new Number(7.123456); 
console.log(num.toPrecision());  // 输出:7.123456 
console.log(num.toPrecision(1)); // 输出:7
console.log(num.toPrecision(2)); // 输出:7.1
5. toString()

Convierte un número en una cadena, utilizando la base especificada. La base del número es un entero entre 2 y 36. Si se omite este parámetro, se utiliza la base 10.

var num = new Number(10); 
console.log(num.toString());  // 输出10进制:10
console.log(num.toString(2)); // 输出2进制:1010
console.log(num.toString(8)); // 输出8进制:12
6. valueOf()

Devuelve el valor numérico primitivo de un objeto Number.

var num = new Number(10); 
console.log(num.valueOf()); // 输出:10

Recomendaciones de uso del objeto Number

En TypeScript, generalmente se recomienda usar el tipo básico number en lugar del objeto Number. Las razones son las siguientes:

  • Rendimiento: los tipos básicos son más ligeros y ofrecen un mejor rendimiento.
  • Consistencia de tipos: el sistema de tipos de TypeScript prefiere los tipos básicos; usarNumberel objeto puede provocar discrepancias de tipos inesperadas.
  • Mejores prácticas: el uso de tipos básicosnumberes más acorde con las mejores prácticas de TypeScript y evita la complejidad innecesaria que implica el envoltorio de objetos.

Si realmente es necesario usar métodos específicos del objeto Number, se puede convertir el objeto Number al tipo básico number mediante el método valueOf().

En resumen, TypeScript recomienda usar el tipo básico number en lugar del objeto Number para mantener el código simple, eficiente y consistente.

Ejemplo

let numLiteral: number = 123.456;
let numObject: Number = new Number(123.456);

console.log(numLiteral.toFixed(2));      // Salida: "123.46"
console.log(numObject.valueOf());        // Salida: 123.456
Otras extensiones