You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确简写JS/TS的if else语句,解决简写后函数总返回true的问题

if else 条件判断简写方案

错误原因

你编写的简写版本始终返回true的核心问题是丢失了原if分支中的return逻辑:原代码中触发对应if条件时,会直接将工具函数的返回值作为整个isPathPointAvailable函数的结果返回;而你的写法只是执行了工具函数,没有将其返回值向外传递,最终函数会固定走到最后一行返回true。

正确简写写法

可以直接用嵌套三目运算符+可选链语法实现完全等价的简写,无需冗余的if判断,甚至可以省略函数大括号和显式return:

const isPathPointAvailable = (requiredItems?: ModelTypes['Item'][], oneOfItems?: ModelTypes['Item'][]) => 
  requiredItems?.length ? userHaveMultipleRequiredItems(requiredItems)
  : oneOfItems?.length ? userHaveRequiredItem(oneOfItems)
  : true;

逻辑说明

该写法和原函数逻辑100%对齐:

  • 首先通过requiredItems?.length判断必填项数组存在且不为空,满足条件则直接返回userHaveMultipleRequiredItems的执行结果
  • 上一条件不满足时,判断可选项数组oneOfItems存在且不为空,满足条件则返回userHaveRequiredItem的执行结果
  • 两个条件都不满足时直接返回true

内容的提问来源于stack exchange,提问作者Dawid Szemborowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 10:24:04