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

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

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
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Сравнение структур данных: Массивы и объекты в Javascript
Сравнение структур данных: Массивы и объекты в Javascript
Итак, вы изучили основы JavaScript и хотите перейти к изучению структур данных. Мотивация для изучения/понимания Структур данных может быть разной,...
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Прошлая статья была первой из цикла статей о создании системы электронной коммерции с использованием Keystone.js, и она была посвящена главным образом...
Приложение для отслеживания бюджета на React js для начинающих
Приложение для отслеживания бюджета на React js для начинающих
Обучение на практике - это проверенная тема для достижения успеха в любой области. Если вы знаете контекст фразы "Практика делает человека...
Стоит ли использовать React в 2022 году?
Стоит ли использовать React в 2022 году?
В 2022 году мы все слышим о трендах фронтенда (React, Vue), но мы не знаем, почему мы должны использовать эти фреймворки, когда их использовать, а...
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

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