Как определить функцию условно

Я хочу установить функцию в результат тернарного оператора (который возвращает одну из двух функций), а затем вызвать результат. Мой код выглядит так:

const bar = (x: number) => {
  // do something
}

const foo = (x: number) => {
  // do something else
}

const my_function = condition ? bar : foo;

my_function(x)

но я получаю ошибку типа, что my_function не является функцией. Почему это не работает, и как я могу заставить это работать? Мне приходится вызывать эту функцию много раз, поэтому я хочу сделать это так, а не просто вызывать условно.

Когда вы наводите курсор на my_function, ваш редактор говорит, что это переменная?

Alex Wayne 16.05.2022 21:06

тип ((x) => void)

MJR 16.05.2022 21:13

тип исходной функциональной панели (x) => void - без дополнительного набора скобок, может быть, это что-то?

MJR 16.05.2022 21:14

Вы получаете эту ошибку во время выполнения или во время компиляции? Вы отметили этот вопрос тегом React.js. Это имеет какое-то отношение к этому?

catgirlkelly 16.05.2022 21:32
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
49
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ответ @ m-s7 работает. Тем не менее, это как-то грязно.

ИМХО лучше зафиксировать что-то вроде этого в производстве:

const bar = (x: number) => {
  // do something
}

const foo = (x: number) => {
  // do something else
}

const my_function = (x: number) => condition ? bar(x) : foo(x)

Здесь вы создаете функцию, в которую вы передаете аргумент и возвращаете результат из правильной функции на основе условия. Это довольно чисто и легко понять с первого взгляда.

спасибо это сработало! Думаю, это было что-то странное с проверкой типов.

MJR 16.05.2022 23:21

Другие вопросы по теме