【发布时间】:2015-10-07 08:24:23
【问题描述】:
我正在尝试使用 typescript 中的 momentJs: 根据我用来编译打字稿的模块系统,我发现了关于如何使用 momentJs 的不同行为。 当使用 commonJs 编译打字稿时,一切都按预期工作,我可以按照 momentJs 文档:
import moment = require("moment");
moment(new Date()); //this works
如果我在导入“moment”时使用 "system" 作为打字稿模块系统,我不得不这样做
import moment = require("moment");
moment.default(new Date()); //this works
moment(new Date()); //this doesn't work
我找到了一种解决方法,无论使用何种 typescript 模块系统,它们都可以正常工作
import m = require("moment")
var moment : moment.MomentStatic;
moment = (m as any).default || m;
我不喜欢这样,我想了解它为什么会这样。难道我做错了什么?谁能解释一下发生了什么?
【问题讨论】:
-
从“时刻”导入时刻;似乎可以工作,尽管编译器显示“没有默认导出”错误(但无论如何都会编译)。另外,请参阅此讨论:github.com/Microsoft/TypeScript/issues/…
-
对我来说 moment.default 不存在任何我导入它的方式,所以我实际上不知道如何创建一个 moment 对象的实例。有人对此有更新的答案吗?
-
您找到合适的解决方案了吗? ..我对 SystemJS 模块系统有同样的问题...
-
我仍在使用解决方法:(
标签: typescript momentjs commonjs systemjs