Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Desarrollo Última actualización: 24 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

JavaScript estaba pensado para escribir breves fragmentos de código de unas pocas líneas que se iban a incrustar en páginas web. Nadie podía prever que JavaScript llegaría a ser tan popular como lo es ahora ni que se utilizaría para escribir aplicaciones con miles de líneas de código.

Por mucho que JavaScript haya crecido y se utilice ahora ampliamente en la creación de aplicaciones, no es un lenguaje perfecto. Sus humildes comienzos y su uso inicial previsto hacen que JavaScript tenga algunas peculiaridades que pueden convertir la creación de aplicaciones a gran escala en una pesadilla.

Por ejemplo, JavaScript no lanza un error cuando se hace referencia a elementos que no existen en un objeto o cuando se multiplica null por un valor numérico.

Qué es una biblioteca JavaScript

Para JavaScript, una cadena vacía("") es igual a 0(cero) cuando se comparan las dos utilizando un operador de igualdad(==). Peor aún, JavaScript no le mostrará estos errores en su código en desarrollo. Sólo verá los errores una vez que ejecute su programa.

TypeScriptconstruido sobre JavaScript, se desarrolló por tanto para aliviar los retos que surgen al construir aplicaciones con JavaScript. Para lograrlo, TypeScript realiza una comprobación estática de tipos a medida que usted escribe su código.

TypeScript

La comprobación estática significa detectar errores en su código sin que tenga que ejecutarlo. La comprobación estática de tipos consiste, por tanto, en buscar errores durante el desarrollo basándose en el tipo de valores sobre los que se opera en el código.

TypeScript es un superconjunto tipado de JavaScript. Ser un superconjunto de JavaScript significa que cualquier código JavaScript válido también es TypeScript válido. Estar tipado significa que TypeScript añade reglas sobre cómo se pueden utilizar los diferentes tipos de datos. TypeScript también está fuertemente tipado, y no se puede trabajar alrededor de las restricciones impuestas por el sistema de tipos.

TypeScript es un gran hito y un avance significativo en el desarrollo web. TypeScript le permite escribir código más legible y fácil de mantener. También refuerza las buenas prácticas de codificación y ayuda a los desarrolladores a detectar y evitar errores al escribir código.

TypeScript es más fiable y fácil de refactorizar, lo que lo hace ideal para construir aplicaciones a gran escala en comparación con JavaScript. Dado que TypeScript está fuertemente tipado, veamos la conversión de tipos, su importancia y cómo TypeScript maneja las conversiones de tipos.

Conversión de tipos en TypeScript y su importancia

Tipos de lenguajes de programación funcionales

La conversión de tipos es el proceso de convertir un valor de un tipo de datos a otro, como convertir un valor de cadena a un número. La conversión de tipos puede hacerse implícitamente, donde el compilador convierte automáticamente los tipos de datos compatibles durante las complicaciones.

La conversión de tipos también puede ser explícita, cuando la conversión de tipos se requiere explícitamente en el código fuente. Esto se conoce a menudo como encasillamiento.

La conversión de tipos es importante porque permite a los desarrolladores trabajar con diferentes formatos de datos sin dejar de ajustarse a los tipos de datos esperados en TypeScript. También ayuda a garantizar resultados predecibles de los códigos fuente.

Como desarrollador, moldear los tipos usted mismo le ayuda a asegurarse de que su código sigue cumpliendo los requisitos de tipos de TypeScript. Hace que su código sea más legible y comprensible y ayuda a prevenir errores relacionados con los tipos.

Las conversiones de tipos también ayudan a soportar las validaciones de datos, y ayudan a TypeScript a ayudarle en el desarrollo proporcionándole todas las herramientas incorporadas, como el autocompletado, que están asociadas a tipos específicos.

Un caso de uso común para la conversión de tipos es con cadenas y números. Al convertir cadenas a números en TypeScript, para evitar errores en su código sólo convierte cadenas numéricas a números. Es decir, puede convertir cadenas como "1", "235", "5234.5", etc. Sin embargo, no convierte cadenas como "hola" en un número

Veamos las diferentes formas de convertir cadenas en números en TypeScript:

Aserción de tipo utilizando 'as

Cuando trabaje con varios tipos de datos en su código TypeScript, a veces, tendrá más información sobre el tipo de un valor que TypeScript no puede conocer. En tales casos, usted le dice a TypeScript de qué tipo será una variable y no deja que el compilador infiera el tipo. Esto se llama aserción de tipo.

La aserción de tipo se realiza utilizando la palabra clave como. Para utilizar la aserción de tipo para convertir una cadena en un número, primero establezca el tipo de la cadena como desconocido. Esto se debe a que, por defecto, TypeScript considera que cualquier conversión de tipo cadena a un número es potencialmente un error. Esto se debe a que ni la cadena ni el número se superponen suficientemente entre sí. Para convertir una cadena en un número utilizando como se muestra a continuación proceda como se muestra a continuación:

/**
 * establezca el tipo de numCadena como desconocido, de lo contrario,
 * Typescript inferirá que numCadena es un valor de cadena
 */
let numCadena: desconocido = "23452";

// Conversión de tipo utilizando as - numCadena se convierte en un número
// y se asigna a la variable puntuación
let puntuación = numCadena como número;
console.log(puntuación);
console.log(puntuación * 35);

Salida:

23452
820820
type-conversion-as

En la salida, observe que la variable numCadena se convirtió en un número y se asignó a puntuación. Entonces podemos hacer cálculos numéricos como la multiplicación con puntuación porque su valor es un número

Aserción de tipo utilizando

La aserción de tipo utilizando también se puede utilizar para convertir una cadena en un número. Funciona exactamente igual que el uso de la palabra clave como. La única diferencia en la implementación es la sintaxis, que se muestra a continuación:

let numCadena: desconocida = "23452";
// Aserción de tipo usando <> para convertir una cadena en un número
let puntuación = <número>numCadena;

console.log(puntuación);
console.log(puntuación * 35);

Salida:

23452
820820
tipo-conversión-as-1

La salida es la misma que utilizando la palabra clave como. De nuevo, recuerde no utilizar la aserción de tipo para convertir cadenas que no contengan valores numéricos.

Uso del constructor de números

Para convertir una cadena en un número utilizando el constructor Número pase la cadena que desea convertir al constructor Número como se muestra en el fragmento de código siguiente:

let numCadena = "23452"; // tipo inferido a cadena
let vidas: cadena = "20"; // tipo anotado a cadena

// pase la cadena al constructor Número para convertirla en número
let puntuación = Número(numCadena)
console.log(puntuación / 17)

// pase la cadena al constructor Número para convertirla en número
let vidas restantes = Número(vidas);
console.log(vidas restantes - 4)

Salida:

1379.5294117647059
16
número-constructor-ts

Al utilizar el constructor Número, no tiene que establecer el tipo de la cadena como desconocido. Funciona con valores de cadena que hayan sido anotados o inferidos a cadena. Sin embargo, recuerde pasar cadenas numéricas como "514". Si pasa una cadena que no puede convertirse en un número, se devolverá NaN (No es un número).

Uso del operador unario más ( )

El operador unario más ( ), que precede a su único operando, se evalúa al operando al que precede. Por ejemplo, 2 se evalúa al número 2, 542 se evalúa al número 542, y así sucesivamente. Sin embargo, si el operando no es un número, el operador unario más ( ) intenta convertirlo en un número.

Por ejemplo, "98", se evaluará a98, y "0" se evaluará al número 0. Por lo tanto, podemos utilizar el operador unario más ( ) para convertir cadenas en números. Si se pasa una cadena que no se puede convertir en un número, se devuelve NaN como se muestra a continuación:

let numCadena1 = "23452";
let numCadena2 = "973.82"
let palabra = "hola"

// Uso del operador unario más ( ) para convertir cadenas en números
let num1 = numCadena1;
let num2 = numCadena2;
let noNúmero = palabra;

console.log(`${num1} es un ${tipoDeNum1}`);
console.log(`${num2} es un ${tipoDeNum2}`);
console.log(noNumero);

Salida:

23452 es un número
973.82 es un número
NaN
unary-plus-output

Utilizar el operador unario más ( ) es una buena forma de convertir cadenas en números, ya que es rápido y no realiza ninguna operación adicional sobre sus operandos.

Uso de parseInt() y parseFloat()

Al igual que en JavaScript, Typescript no distingue entre números enteros y números decimales también conocidos como números de coma flotante. Todos se consideran de tipo número. Dicho esto, los comportamientos de parseInt() y parseFloat() difieren ligeramente.

parseInt() toma un argumento de cadena, lo analiza y devuelve un número entero equivalente según el radix especificado. parseFloat() toma una cadena y la analiza devolviendo un número de coma flotante.

Por ejemplo, si pasa "897" tanto a parseInt() como a parseFloat(), obtendrá de vuelta el número 897. Sin embargo, si pasa 897,75 tanto a parseInt() como a parseFloat(), parseInt() devolverá 897 mientras que parsefloat() devolverá 897,75.

Por lo tanto, cuando convierta cadenas numéricas que no tengan decimales, utilice parseInt(), sin embargo, si la cadena numérica tiene decimales, utilice parseFloat() como se muestra en el código siguiente:

let numString1 = "897.75";
let numString2 = "724";
let word = "hola";

console.log("Parseando cadenas numéricas con números decimales")
console.log(`Using parseInt -> ${parseInt(numCadena1)}`);
console.log(`Using parseFloat -> ${parseFloat(numCadena1)}`);

console.log("Parseando cadenas numéricas con números enteros")
console.log(`Using parseInt -> ${parseInt(numCadena2)}`);
console.log(`Using parseFloat -> ${parseFloat(numString2)}`);

console.log("Parsing strings that can't convert to number")
console.log(parseInt(word));
console.log(parseFloat(word));

Salida:

Análisis sintáctico de cadenas numéricas con números decimales
Uso de parseInt -> 897
Uso de parseFloat -> 897.75
Análisis sintáctico de cadenas numéricas con números enteros
Uso de parseInt -> 724
Uso de parseFloat -> 724
Análisis sintáctico de cadenas que no pueden convertirse en número
NaN
NaN
parsing-int-float-output

Conclusión

Cuando trabaje con valores de cadena, como el resultado de las llamadas a la API, es posible que desee convertirlos en números para poder realizar cálculos numéricos con ellos. Cuando surja tal necesidad, considere los métodos destacados en el artículo para convertir cadenas en números.

Sin embargo, siempre que convierta cadenas en números, tenga cuidado porque podría obtener NaN cuando intente convertir una cadena en un número.

Para evitar dicho error, asegúrese de que todas las cadenas que desea convertir a un número son cadenas numéricas. También puede utilizar una sentencia if para comprobar la existencia de NaN y evitar errores en su código.

También puede explorar las principales bibliotecas y tiempos de ejecución de TypeScript que debe conocer como desarrollador.

  • Collins Kariuki
    Autor
    Collins Kariuki es desarrollador de software y escritor técnico para Geekflare. Tiene más de cuatro años de experiencia en el desarrollo de software, una formación en Informática y también ha escrito para Argot, Daily Nation y el periódico Business Daily.
  • Narendra Mohan Mittal
    Editor

    Narendra Mohan Mittal es un versátil y experimentado estratega de marca digital y editor de contenidos con más de 12 años de experiencia. Es medalla de oro en M-Tech y B-Tech en Informática e Ingeniería.


    Actualmente,... Seguir leyendo

Gracias a nuestros patrocinadores
Más lecturas sobre desarrollo
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder