我有一个带有声明的文件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。只需直接引用该模块即可。
您收到运行时错误,但未收到编译器错误,因为您的运行时正在尝试为当前路径而不是从models / ArrayItem加载ArrayItem.js。您的module.d.ts文件没有意义,因为它只是打字稿模块中定义(而不是代码)的包装,您已经准备好直接引用该模块了。
因此,请勿使用///并使用require(“ models / ArrayItem”)进行导入。