相关疑难解决方法(0)

SystemJS - 时刻不是一个功能

我使用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

momentJS上的打字稿模块系统行为奇怪

https://github.com/dbushell/Pikaday/issues/153

谢谢!

javascript angularjs momentjs systemjs

32
推荐指数
1
解决办法
2万
查看次数

momentJS上的打字稿模块系统行为奇怪

我正在尝试使用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)

我不喜欢这个,我想理解为什么它会像这样.难道我做错了什么?谁能解释一下我发生了什么?

commonjs momentjs typescript systemjs

20
推荐指数
3
解决办法
7257
查看次数