TypeScript不会解析外部模块(node.js)

时间:2013-12-25 22:04:50

标签: node.js typescript momentjs commonjs

我想在我的节点应用程序中使用moment.js,所以我使用node的包管理器npm安装了moment.js:

npm install moment@2.4.0

为了安全起见,我检查时刻未全局安装,安装的版本确实是版本2.4.0(版本2.4.0以便使用正确的d.ts文件...)

require("moment").version

好吧,似乎很好。我也在使用最新版本的TypeScript(0.9.5)。

所以,现在我将以下文件添加到我的项目根目录https://github.com/borisyankov/DefinitelyTyped/blob/master/moment/moment.d.ts并引用该文件:

/// <reference path="moment.d.ts" />

现在,使用TypeScripts import keyword:

可以导入片刻
import m = require("moment");

使用以下命令进行编译

tsc app.ts --module commonjs

产生以下错误

  

/home/unknown/temp/test/app.ts(3,1):错误TS2071:无法解析   外部模块'“时刻”'。 /home/unknown/temp/test/app.ts(3,1):错误   TS2072:模块不能别名为非模块类型。

为什么会出现此错误?我该如何解决?

1 个答案:

答案 0 :(得分:6)

d.ts文件中的重要一行就是这个......

declare var moment: MomentStatic;

它只是暂时声明一个变量。

您可以添加以下行来解决问题:

export = moment;

这应该可以使用您拥有的import语句加载它。

如果你这样做 - 你将不需要参考评论。