我有一个带有声明的文件 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 的正确路径?
我在这里很困惑。有人可以在这里提供帮助吗?
最佳答案
如果您是 ArrayItem.ts 的所有者,那么您不需要 module.d.ts。直接引用模块即可。
您收到运行时错误,但不是编译器错误,因为您的运行时正在尝试为当前路径加载 ArrayItem.js,而不是从 models/ArrayItem 加载。 module.d.ts 文件中没有任何意义,因为它只是 typescript 模块中定义(而不是代码)的包装,您已经可以通过直接引用该模块来获取该模块。
因此,不要使用///并使用 require("models/ArrayItem") 导入。
关于javascript - Typescript 模块加载错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36678280/