我使用的是Visual Studio Pro 2015,并在保存时启用了自动编译功能。
在已编译的js文件中,我在typescript __extends函数中遇到错误,其中'无法读取未定义的属性原型'对于b.prototype。
但是,每当我重建项目时,错误就会消失,一切正常。
答案 0 :(得分:0)
这听起来像是将类插入编译的.js
文件的顺序问题。 I had a similar problem with Visual Studio's single-file compilation functionality.在查看已编译的文件时,是否存在从基类继承的类,该类在文件的后面才定义?
我不确定为什么行为只会在编译被保存触发时出现 - 这对我来说似乎很奇怪。有时,当编译器必须猜测输出结果的顺序时,编译器似乎是非确定性的。这可能与渐进式编译有关吗?
要解决此问题,您可以告诉编译器应该使用<reference>
标记定义一个特定的类。
因此,例如,一个带有引用标记的子类如下:
/// <reference path="./MyBaseClass" />
class MyClass extends MyBaseClass {
}
在编译好的.js
文件中的后面会出现:
class MyBaseClass {
}