【发布时间】:2016-08-16 22:01:58
【问题描述】:
我知道TypeScript outFile usage is not recommended。
但在我有时间实施更好的解决方案(例如 AMD)之前,我不得不使用它。
我相信我遇到了“模块拆分问题”。我在同一个目录中有两个文件:
文件引用File.ts:
module my.namespace {
export class one {
}
export class two {
}
}
文件 anotherClass.ts:
module my.namespace {
export class anotherClass {
constructor() {
// THROWS ERROR "JavaScript runtime error: Object doesn't support this action"
var x = new my.namespace.one();
}
}
}
在运行时,我在尝试实例化新的“one”类时收到错误消息“对象不支持此操作”。在另一个类的构造函数中调试,我可以看到my.namespace.one和my.namespace.two此时不存在。
我在 anotherClass.ts 顶部添加了这一行,但没有解决:
/// <reference path="referencedFile.ts" />
我的 typescript Visual Studio 设置“将 Javascript 输出合并到一个文件中:Scripts\oneFile.js”
我可以在生成的“oneFile.js”中看到,referencedFile.ts 的代码在那里,它在 anotherClass.js 代码之前的文件中,所以我认为没有排序问题。
什么给了?
【问题讨论】:
-
你使用的是什么版本的 TypeScript?
-
1.8.36 在 VS 2015 中列出,但我在程序文件中安装了 1.7.6 工具。我删除了 1.7.6 工具,这可能已经解决。将验证但想了解原因
-
您可能想开始研究the
importkeyword,因为您使用的是支持它的版本。它取代了/// <referencecmets,并提供了更符合 ECMAScript 最新版本的体验。我不确定您为什么会收到此错误,但这可能与文件的编译方式有关。 -
我想我可能不得不迁移到外部模块才能使用 import 关键字,但绝对是我想去的地方
标签: javascript visual-studio typescript tsc