Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

128
Vistas
La forma más idiomática de validar el tipo

Estoy acostumbrado a usar algo como el siguiente patrón en un lenguaje dinámico para verificar/afirmar el tipo:

 function square(num) { // pretend we don't already have a TypeError if (!num instanceof Number) throw new MyCustomError("Only a number is allowed here") return num * num; }

Sin embargo, js no permite instanceof de primitivas, bueno, al menos de una manera que ayude a verificar el tipo fácilmente, como me gustaría en el anterior. ¿Cuál es la forma recomendada/idiomática de hacer esto, solo compáralo con una cadena? Como:

 // create our own error class ValidationError extends Error { constructor(message) { super(message); this.name = "ValidationError"; } } function square(num) { // pretend we don't want a TypeError if (typeof num != 'number') throw new ValidationError("Only a number is allowed here") return num * num; } console.log(square(2)); console.log(square('abc'));

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Cree una función de decorador reutilizable que haga que cualquier función que solo acepte parámetros numéricos arroje un error si se llama con argumentos no numéricos:

 function multiply(a, b) { return a * b } function numArgsOnly(fn) { return function(...args) { if (args.some(n => n!==Number(n))) throw `${args.find(n => n!==Number(n))} is not a number`; return fn(...args); } } const safeMultiply = numArgsOnly(multiply); console.log(safeMultiply(3,9)); try { safeMultiply(3,'foo'); } catch (e) { console.error(e) }

about 4 years ago · Juan Pablo Isaza Denunciar

0

En lugar de verificar si una variable no es un Number haciendo una instanceof de verificación (que no funciona en primitivas), intente lo siguiente.

 const num = 78; console.log(isNaN(num) || typeof num !== "number");

Aquí, estamos usando la palabra clave typeof , ya que es compatible con las primitivas de JavaScript. También estamos comprobando si el valor es NaN .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda