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

139
Vistas
Diferenciar el constructor de clase de la función "normal"

Si tengo dos nombres de variables A y b , mientras que A es un constructor de clase y b es una función, ¿cómo escribo una función que tome el nombre como parámetro y distinga si es un constructor de clase o no?

O dicho de otro modo, ¿cómo sé si tengo que llamar a la función con el operador new o no?

 class A{ constructor(){ } } function b(){ } isClass(arg:(new ()=>A) | Function):boolean{ // some code that returns true if arg is a class } isClass(b) // false isClass(A) // true

Hay una solución que se me ocurrió:

 arg.toString().startsWith("class")

Esto funciona porque arg.toString() devuelve la definición de arg , en este ejemplo algo así como class A{constructor(){}} para A y function b(){} para b . Mi solución funciona, pero puedo imaginar que haya algo mejor que eso.

El uso del operador typeof devuelve "función" tanto para A como para b , y arg.prototype solo no está definido si b es una función de flecha.

about 4 years ago · Juan Pablo Isaza
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