我有以下代码:
let date1 = new Date("January 13, 2018 11:00:00");
console.log(date1.getTime());
console.log(typeof date1.getTime() === Number);
console.log(typeof date1.getTime());
console.log(typeof date1.getTime() === number);
哪些打印:
1515841200000
false
number
ReferenceError: number is not defined
at eval:31:40
at eval
at new Promise
所以看起来typeof date1.getTime()
是number
.但是,当我用number
测试相等性时,我得到一个错误,当我用Number
测试相等时,我得到false
。
我想测试该类型的原因是我有一个 Jest 测试,我正在检查变量是否是Number
:
expect.any(Number)
但是,测试从 date1.getTime()
之类的语句中获取变量,并且测试失败而不是通过。
那么,我怎样才能测试类型,以使date1.getTime()
不会使测试失败呢?
console.log(typeof date1.getTime() === 'number')
typeof
运算符返回一个字符串。
请参考 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof
您可以在断言中使用它:expect(typeof date1.getTime()).toBe('number')
您可以使用:
expect(date1.getDate()).toEqual(expect.any(Number));