为什么 momentjs isSameOrBeforeisSameOrAfter函数不适用于isBeforeisAfter的数据?

以下是一些非常简单的隔离示例,其中isSameOrBeforeisSameOrAfter不起作用:

moment("2018-10-12 10:44:01").isSameOrBefore(moment("2018-10-12 10:44:00"))
TypeError: moment(...).isSameOrBefore is not a function [Learn More]

moment("2018-10-12 10:44:01").isSameOrAfter(moment("2018-10-12 10:44:02"))
TypeError: moment(...).isSameOrAfter is not a function [Learn More]

但是,对于相同类型的数据,isBeforeisAfter可以正常工作:
moment("2018-10-12 10:44:01").isBefore(moment("2018-10-12 10:44:00"))
false
moment("2018-10-12 10:44:01").isAfter(moment("2018-10-12 10:44:02"))
false
moment("2018-10-12 10:44:00").isBefore(moment("2018-10-12 10:44:01"))
true
moment("2018-10-12 10:44:02").isAfter(moment("2018-10-12 10:44:01"))
true

最佳答案

对我来说,此问题的解决方案是将Moment.js更新到2.23.0版本。我的moment.d.ts文件误导了我,该文件出于未知原因而用于Moment.js的2.11.1版本,而不是我安装的版本(版本2.9.0)。

更新后,请确保在浏览器的调试器的文件浏览器中 checkin moment.js文件,并验证其是否与项目中的文件匹配-如果不匹配,至少在Firefox/Waterfox中,请尝试重新启动浏览器然后在遇到问题的项目页面上按Ctrl + F5。

对于我来说,不要对TypeScript的类型安全抱有太大的信心,这对我是一个教训!

关于javascript - 瞬间的isSameOrBefore和isSameOrAfter返回 “is not a function”(从瞬间调用并经过瞬间),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54127282/

10-09 17:03