如何在 TypeScript 中比较 2 个布尔值

问题描述 投票:0回答:2

我正在尝试与

if
中的布尔值进行比较。 我想做这样的事情:

value1 = false;
value2 = true;

if (value1 === value2) {
  ... Some code ...
}

在 Java 中你可以使用

Boolean.compare(boolean a, boolean b)
,但是 我在 TypeScript 中找不到相同的东西
对于上下文,
Boolean.compare(boolean a, boolean b)
返回
:

  • 0 如果
    a
    等于
    b
    ,
  • 如果
  • a
     为假且 
    b
     为真,则
    为负值,
  • 如果
  • a
     为 true 并且 
    b
     为 false,则
    为正值。

谢谢你的帮助

编辑:显示我收到的消息

此条件将始终返回“false”,因为类型“true”和“false”没有重叠

javascript typescript
2个回答
4
投票

Javascript 没有可与 Java 的

Boolean.compare()
相媲美的内置函数。事实上,布尔类除了构造函数、
toString()
valueOf()
之外几乎什么都没有。

如果您想自己复制该功能,可以使用

Number
构造函数

function booleanCompare(a: boolean, b: boolean) {
    return Number(a) - Number(b);
}

0
投票

这可用于实现所有可能的结果:

const Result = {
  first: 0, // A: 0, B 0
  second: 1, // A: 1, B 0
  third: -1, // A: 0, B 1
  forth: 2, // A: 1, B 1
  get: (A: boolean, B: boolean) => (Number(A) - Number(B))
}

const f = () => {
  const A = true;
  const B = true;

  switch(Result.get(A, B)) {
    case Result.first:
      // To something
      break;
    case Result.second:
      // To something
      break;
    case Result.third:
      // To something
      break;
    case Result.forth:
      // To something
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.