Quiero establecer una función para el resultado de un operador ternario (que devuelve una de dos funciones) y luego llamar al resultado. Mi código se ve así:
const bar = (x: number) => { // do something } const foo = (x: number) => { // do something else } const my_function = condition ? bar : foo; my_function(x)pero recibo un error de tipo que my_function no es una función. ¿Por qué no funciona esto y cómo puedo hacer que funcione? Tengo que llamar a esta función muchas veces, por eso quiero hacerlo así y no solo llamar condicionalmente.
La respuesta de @ m-s7 funciona. Sin embargo, es un poco desordenado.
En mi humilde opinión, es mejor enviar algo como esto a la producción:
const bar = (x: number) => { // do something } const foo = (x: number) => { // do something else } const my_function = (x: number) => condition ? bar(x) : foo(x)Aquí, está creando una función en la que pasa el argumento y devuelve el resultado de la función correcta según la condición. Es bastante limpio y fácil de entender de un vistazo.