Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

321
Views
Ningún constituyente de tipo 'verdadero | CallableFunction' es invocable

El error completo:

 This expression is not callable. No constituent of type 'true | CallableFunction' is callable

Este es el código que estaba provocando el error:

 public static base( text, callB: boolean | CallableFunction = false, ) { const sw = Swal.fire({ text, }); if (callB) { sw.then(callB()); } }

Cambié el tipo de callB a:

 callB: (param: any) => void |boolean = false

y cuando elimino la definición de tipo callB:

 callB= false

me sale este error:

 This expression is not callable. Type 'Boolean' has no call signatures
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Esto es lo que estás buscando:

 function base(text: string, callB: false | CallableFunction = false) { console.log(text); if (callB) { callB(); } }

Esencialmente, desea pasar una función o false . Cuando es verdad, desea llamar a la función.

Pero según tu definición

 function base(text: string, callB: boolean | CallableFunction = false) { console.log(text); if (callB) { callB(); } }

esta sería una base('some str', true) donde callB es true y no una función que intentará ejecutar usando callB() . No booleano no es invocable, ¿verdad? De ahí el error.

Enlace de TS Playground: https://tsplay.dev/m056qW

about 4 years ago · Juan Pablo Isaza Report

0

El tipo

 boolean | Function

es equivalente a

 true | false | Function

Ahora, debido a que un valor de tipo Function es verdadero, su verificación

 if (callB)

reduce el tipo de callB a

 true | Function

y true no es invocable, de ahí el error.

No está claro cómo debe usarse su método base , por lo que he esbozado dos soluciones:

Si true no es una entrada válida, ajuste su tipo de parámetro en consecuencia

 static base( text, callB: false | CallableFunction = false ) { if (callB) { callB(); } }

Si true es un caso que debe manejar, use una verificación condicional más precisa como

 if (typeof callB === 'function') { callB() // OK }
about 4 years ago · Juan Pablo Isaza Report

0

Si usa false | Callablefunction (o boolean | CallableFunction ), puede forzar el tipo usando typeof :

 static base( text, callB: false | CallableFunction = false ) { if (typeof callB === "function") { callB() } }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!