我想在我的Angular 4应用程序中使用JDateFormatParser和Moment.js。
我设法成功安装并使用Moment.js
使用:
npm install moment --save
使用以下内容将其添加到我的.ts
import * as moment from 'moment';
我可以使用并执行它。
之后我使用以下方法安装了插件:
npm install moment-jdateformatparser --save
当我想在我的代码中使用它时:
moment().toJDFString(moment.localeData().longDateFormat('L'))
我的IDE已经抱怨了:
TS2339:属性' toJDFString'类型'时刻'上不存在。
看一下this answer我尝试使用强制转换:
(<any>moment()).toJDFString(moment.localeData().longDateFormat('L'))
这解决了IDE中的错误,但在执行期间,控制台告诉我:
TypeError: WEBPACK_IMPORTED_MODULE_6_moment (...)。toJDFString is 不是一个功能
有没有人提示如何使用它?
答案 0 :(得分:1)
您必须导入moment-jdateformatparser
,因为它只是将其功能添加到时刻并导出moment
。
import * as moment from "moment-jdateformatparser";
至于使用多个插件,似乎到目前为止还没有一个好的解决方案,或者至少我还没有找到干净的方式。
一种选择是分别导入两个插件,并将它们命名为不同:
import * as momentJdate from "moment-jdateformatparser";
import * as momentTimezone from "moment-timezone";
如果你想这样,你可以在以后合并它们(使用deepExtend):
let moment = {};
deepExtend(moment, momentJdate, momentTimezone);
//here you should be able to use moment().toJDFString() and moment.tz.names()
在我看来,这些选项都不是 clean ,但它们都应该有效。我也从未在一个文件中使用过多个时刻的插件,因此这样的解决方法可能没问题。