javascript - Typescript 模块加载错误

标签 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 的正确路径?

我在这里很困惑。有人可以在这里提供帮助吗?

最佳答案

如果您是 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/

相关文章:

typescript - 为什么抽象方法实现里面的this.propertyName引用错误?

reactjs - 如何使用 react-native-testing-library getByRole

angular - 在 Angular CLI : Cannot redeclare block-scoped variable 'ngDevMode' 中获取构建错误

css - 如何仅通过从后端获取 css 文件路径来动态加载 CSS 文件?

javascript - OpenLayers 4 中如何根据比例进行缩放?

javascript - 正则表达式匹配 URL 末尾的文件名

javascript - 如何在没有 for 循环的情况下在控制台中显示数字?

javascript - Typescript:相当于 linq .GroupBy(key => key.IdItem).Select(item => item.Single());

javascript - 如何获取事件字符串?

javascript - 将多个参数从 ASP.NET 传递到 JavaScript 函数