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

我想在我的节点应用程序中使用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关键字导入时刻:

import m = require("moment");

使用以下命令进行编译

tsc app.ts --module commonjs

产生以下错误

/home/unkNown/temp/test/app.ts(3,1): error TS2071: Unable to resolve
external module ‘”moment”‘. /home/unkNown/temp/test/app.ts(3,1): error
TS2072: Module cannot be aliased to a non-module type.

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

解决方法

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

declare var moment: MomentStatic;

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

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

export = moment;

这应该使用您拥有的import语句使其可加载.

如果你这样做 – 你将不需要参考评论.

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...