所以我在控制檯中得到上述錯誤。這是由於_super
在傳遞到__extends
(在生成的.js
中)時未被定義。Typescript錯誤運行時錯誤:無法讀取擴展時未定義的屬性'原型'
下面是一些測試代碼可用於重現錯誤:
//This is the entirety of the file Test.ts
module Test {
export class Test1 {
public Name: string;
public Number: number;
constructor() {
}
}
}
然後,在一個單獨的文件我已經從一個繼承的類:
/// <reference path="Test.ts" />
module Test {
export class Test2 extends Test1 {
constructor() {
super();
}
}
}
的<reference path...
不該」不需要(而不是),但我添加了它,看看它是否有幫助(它沒有)。
這些文件包含在正確的順序(Test.ts
然後Test2.ts
)通過BundleConfig
(運行有或沒有優化沒有任何影響)。
我可能是一個巨型noob,但我沒有絲毫的線索,我已經搞砸了。我在網上找到的這個問題的所有其他實例都來自使用命令行編譯器將多個Typescript文件合併爲一個文件的人。我正在使用捆綁軟件來做到這一點,但即使我沒有合併它們,我也會遇到完全相同的問題。
請幫助我,我在我的智慧結束!
按照要求,這裏的編譯的JavaScript: Test.js:
//This is the entirety of the file Test.ts
var Test;
(function (Test) {
var Test1 = (function() {
function Test1() {
}
return Test1;
})();
Test.Test1 = Test1;
})(Test || (Test = {}));
//# sourceMappingURL=Test.js.map
Test2.js:
var __extends = this.__extends || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
__.prototype = b.prototype;
d.prototype = new __();
};
/// <reference path="Test.ts" />
var Test;
(function (Test) {
var Test2 = (function (_super) {
__extends(Test2, _super);
function Test2() {
_super.call(this);
}
return Test2;
})(Test.Test1);
Test.Test2 = Test2;
})(Test || (Test = {}));
//# sourceMappingURL=Test2.js.map
我重新啓動我的電腦在午餐這個現在的作品。非常奇怪。 – Maverick