Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

144
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda