Вы можете уменьшить эту функцию до одной стрелки. Используя оператор короткого замыкания &&
, вы можете убедиться, что useMocks
установлен, только если idNumber
определено
let useMocks = false
const setMockSwitch = ({idNumber}) => idNumber && (useMocks = idNumber === mockUser.idNumber)
Вы также можете написать его так, чтобы он не вызывал побочных эффектов, например,
const shouldUseMocks = ({idNumber}) => idNumber === mockUser.idNumber
idNumber && useMocks = shouldUseMocks({idNumber})
Это позволяет вам извлечь этот метод в библиотеку помощников и использовать его повторно, так как он не изменяет напрямую переменные из внешней области видимости. Это был бы мой предпочтительный и рекомендуемый способ.
Если вы хотите, чтобы 0
был действительным idNumber
,
let useMocks = false
const setMockSwitch = ({idNumber}) => idNumber !== void 0 && (useMocks = idNumber === mockUser.idNumber)
void 0
всегда возвращает истинный примитив undefined
, а не любые локальные переменные, называемые undefined
, поэтому это самый чистый способ проверки на неопределенность. Фактически вы можете поместить оператор void перед любым другим выражением, чтобы заставить его возвращать undefined