我有一项任务是在Angular2应用程序中将MomentJS与服务器时间同步。
MomentJS具有更改时间源的功能,如here
所述但是typescript编译器不允许我覆盖#now()函数的时刻,因为它在moment.d.ts中从命名空间导出为函数,所以我得到了错误。
无法分配给'now',因为它是常量或只读属性。
与此同时,moment.d.ts暂时评论#now:
// ...为利润覆盖
所以我认为我做错了什么。
我使用angular-cli rc4,MomentJS 2.18.1并将其导入为
导入*作为“时刻”的时刻;
感谢您的帮助。
答案 0 :(得分:0)
“打字稿编译器不允许我覆盖
moment#now()
函数,因为它是作为函数从moment.d.ts
中的命名空间导出的,所以我得到了错误。”
这些约束仅是预编译的,这意味着您可以告诉打字稿本质上忽略,并可以通过将其强制转换为any
来覆盖。
import * as moment from "moment";
// temporary cast as any to override.
(moment as any).now = () => serverDateTime
// continue with moment intellisense