Javascript 开玩笑期望 0 等于 -0

O.O*_*.O. 5 javascript jestjs

我试图在 ts 中创建一个笑话测试,结果应该等于 0。这似乎在 -0 上失败。

test("zero equals fails", () => {
  const actual = -0
  const expected = 0
//   expect(actual).toBe(expected)
//   expect(actual).toStrictEqual(expected)
//   expect(actual).toEqual(expected)
})
Run Code Online (Sandbox Code Playgroud)

给出:

Expected: 0
Received: -0
Run Code Online (Sandbox Code Playgroud)

即使我的控制台中的 equals 检查说它们相等。

0 == -0
true
0 === -0
true
Run Code Online (Sandbox Code Playgroud)

在这种情况下我应该使用什么断言比较?

Cer*_*nce 5

所有这些方法都使用Object.is比较原始值,并且Object.is比较失败时0-0

似乎没有任何具体的相关方法(有toBeCloseTo,但这不太合适,因为问题不是浮点精度)。

一个可能的选择是:

expect(actual === expected).toBeTruthy();
Run Code Online (Sandbox Code Playgroud)