打字稿模块加载错误

时间:2016-04-17 15:10:06

标签: javascript typescript

我有一个带声明的文件module.d.ts

declare module "ArrayItem" {import out = require("models/ArrayItem"); export = out;}

现在我有一个文件Array.ts,第一行是

/// <reference path="../module.d.ts" /> 
import array = require("ArrayItem").

但这不起作用。我收到了脚本错误。

如果我使用,

/// <reference path="../module.d.ts" /> 
import array = require("models/ArrayItem")

然后我没有得到任何错误。

这里的模块加载有什么问题?

如果我有module.d.ts,那么应该从require(“arrayitem”)加载arrayitem模块。

正确?或者我应该始终使用ArrayItem的正确路径吗?

我在这里很困惑。有人可以在这里帮忙吗?

1 个答案:

答案 0 :(得分:1)

如果您是ArrayItem.ts的所有者,那么您不需要module.d.ts。只需直接引用该模块即可。

您收到运行时错误但不是编译器错误,因为您的运行时正在尝试为当前路径加载ArrayItem.js而不是从models / ArrayItem加载。你的module.d.ts文件中没有任何意义,因为它只是typescript模块中的定义(而不是代码)的包装,你已经通过直接引用模块来获取它。

所以,不要使用///并使用require导入(&#34; models / ArrayItem&#34;)。