Sys*_*ata 7 commonjs node.js momentjs typescript
我想在我的节点应用程序中使用moment.js,所以我使用node的包管理器npm安装了moment.js:
npm install moment@2.4.0
Run Code Online (Sandbox Code Playgroud)
只是为了安全起见,我检查时刻未全局安装,安装的版本确实是版本2.4.0(版本2.4.0以便使用正确的d.ts文件...)
require("moment").version
Run Code Online (Sandbox Code Playgroud)
好吧,似乎很好.我也在使用最新版本的TypeScript(0.9.5).
所以,现在我将以下文件添加到我的项目根目录https://github.com/borisyankov/DefinitelyTyped/blob/master/moment/moment.d.ts并引用该文件:
/// <reference path="moment.d.ts" />
Run Code Online (Sandbox Code Playgroud)
现在,它应该使用TypeScripts import关键字导入时刻:
import m = require("moment");
Run Code Online (Sandbox Code Playgroud)
使用以下命令进行编译
tsc app.ts --module commonjs
Run Code Online (Sandbox Code Playgroud)
产生以下错误
/home/unknown/temp/test/app.ts(3,1):错误TS2071:无法解析外部模块'"时刻"'./home/unknown/temp/test/app.ts(3,1):错误TS2072:模块不能别名为非模块类型.
为什么会出现此错误?我如何解决它?
d.ts文件中的重要一行就是这一行......
declare var moment: MomentStatic;
Run Code Online (Sandbox Code Playgroud)
它只是暂时声明一个变量.
您可以添加以下行来解决您的问题:
export = moment;
Run Code Online (Sandbox Code Playgroud)
这应该使用您拥有的import语句使其可加载.
如果你这样做 - 你将不需要参考评论.
| 归档时间: |
|
| 查看次数: |
5510 次 |
| 最近记录: |