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

TypeScript中如何合并业务逻辑相同的两个if条件?

可以合并,优化方案如下

先拆解原代码的两个分支条件:

  • 共同逻辑:两个分支都要求 model 不为空,且 isActive 为 false
  • 差异逻辑:modNames.includes(model) 和 this.installed 的状态互斥(一个为真时另一个必为假)

基于这个逻辑,可以将两个条件合并,利用异或关系(!== 等价于异或)简化判断,最终代码如下:

const modNames = ['CW652', 'MNOP200', '100ABCD', 'XYZ200'];
if (model && !isActive && (modNames.includes(model) !== this.installed)) {
  this.route = true;
  this.stop = false;
} else {
  this.route = false;
  this.stop = true;
}

逻辑验证

原两个分支的差异条件:

  1. modNames.includes(model) && !this.installed
  2. !modNames.includes(model) && this.installed

这两种场景刚好对应 modNames.includes(model) 和 this.installed 的值不相等,用 !== 可以精准覆盖,和原逻辑完全一致,同时代码更简洁易读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 06:40:56