Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TypeScript赢得';t解析外部模块(node.js)_Node.js_Typescript_Momentjs_Commonjs - Fatal编程技术网

TypeScript赢得';t解析外部模块(node.js)

TypeScript赢得';t解析外部模块(node.js),node.js,typescript,momentjs,commonjs,Node.js,Typescript,Momentjs,Commonjs,我想在我的节点应用程序中使用moment.js,因此我使用节点的package manager npm安装了moment.js: npm install moment@2.4.0 为了安全起见,我检查了moment并不是全局安装的,安装的版本实际上是版本2.4.0(为了使用正确的d.ts文件,版本2.4.0…) 好的,看起来不错。我还使用最新版本的TypeScript(0.9.5) 因此,现在我将以下文件添加到我的项目根目录并引用了该文件: /// <reference path="mo

我想在我的节点应用程序中使用moment.js,因此我使用节点的package manager npm安装了moment.js:

npm install moment@2.4.0
为了安全起见,我检查了moment并不是全局安装的,安装的版本实际上是版本2.4.0(为了使用正确的d.ts文件,版本2.4.0…)

好的,看起来不错。我还使用最新版本的TypeScript(0.9.5)

因此,现在我将以下文件添加到我的项目根目录并引用了该文件:

/// <reference path="moment.d.ts" />
使用以下命令编译

tsc app.ts --module commonjs
产生以下错误

/主/未知/临时/测试/应用程序ts(3,1):错误TS2071:无法解决 外部模块“力矩”/主/未知/临时/测试/应用ts(3,1):错误 TS2072:模块不能别名为非模块类型


为什么会发生这种错误?如何修复它?

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

declare var moment: MomentStatic;
它只是暂时声明了一个变量

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

export = moment;
这将使它可以使用您拥有的import语句进行加载


如果您这样做,您就不需要引用注释。

moment.d.ts文件是通过脚本标记而不是require调用加载的。您将需要编辑.d.ts文件,使其看起来像一个外部模块(关于如何执行此操作,应该有其他一些DefinitelyTyped示例)。我明白了。。。我在moment.d.ts文件declare var moment的末尾添加了以下行:MomentStatic;声明模块“moment”{export=moment;}就可以了!谢谢我有一个类似的问题,但是有一个用Typescript编写的模块(我认为它不需要任何定义文件)。你有这样的问题吗?这里有更好的描述:
declare var moment: MomentStatic;
export = moment;