我使用JSPM,AngularJS,TypeScript,SystemJS和ES6我的项目运行非常好......除非我尝试使用momentJS.
这是我得到的错误:
TypeError:时刻不是函数
这是代码的一部分:
import * as moment from 'moment';
Run Code Online (Sandbox Code Playgroud)
更多:
var momentInstance = moment(value);
Run Code Online (Sandbox Code Playgroud)
如果我调试它,时刻是一个对象而不是一个函数:
这就是我的moment.js JSPM包的样子:
module.exports = require("npm:moment@2.11.0/moment.js");
Run Code Online (Sandbox Code Playgroud)
我已经阅读了很多,找不到解决这个问题的方法......任何想法?
我读过/试过的一些事情:
如何在TypeScript中使用带有SystemJS的momentjs?
https://github.com/angular-ui/ui-calendar/issues/154
https://github.com/jkuri/ng2-datepicker/issues/5
https://github.com/dbushell/Pikaday/issues/153
谢谢!
我正在尝试使用typescript中的momentJs:取决于我用来编译typescript的模块系统,我发现了一个不同的行为,我可以使用momentJs.使用commonJs编译typescript时,一切都按预期工作,我可以按照momentJs文档:
import moment = require("moment");
moment(new Date()); //this works
Run Code Online (Sandbox Code Playgroud)
如果我在导入"时刻"时使用"system"作为打字稿模块系统,我不得不这样做
import moment = require("moment");
moment.default(new Date()); //this works
moment(new Date()); //this doesn't work
Run Code Online (Sandbox Code Playgroud)
我发现了一种解决方法,无论使用哪种打字稿模块系统,它们都能正常工作
import m = require("moment")
var moment : moment.MomentStatic;
moment = (m as any).default || m;
Run Code Online (Sandbox Code Playgroud)
我不喜欢这个,我想理解为什么它会像这样.难道我做错了什么?谁能解释一下我发生了什么?