无法启动typescript编译文件

时间:2014-11-27 14:29:13

标签: javascript typescript

我已经将大型JS项目转换为使用PhantomJs的打字稿(作为I C#程序员)。 问题是解释器(phantomjs)在执行此js文件时失败。

D:\My\phantomjs-1.9.7-windows\phantomjs.exe --load-images=false --ssl-protocol=any --web-security=no --cookies-file=cookies C:\Users\alex\Projects\robot\bo.js
TypeError: 'undefined' is not an object (evaluating 'b.prototype')

代码是:

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; // <<< here
    d.prototype = new __();
};

因此。我认为这个问题与继承有一定关系。 有没有人遇到过这个问题?任何帮助表示赞赏。感谢。

1 个答案:

答案 0 :(得分:12)

此错误的最常见原因是您以错误的顺序加载文件...例如......

档案A

class ExampleClass {
    someMethod() {
        alert('Hello World');
    }
}

档案B

class ExampleSubClass extends ExampleClass {

}

如果您要在File B之前加载File A,则会收到您所描述的确切错误。 (这包括忘记在File A之后加载File A或加载File B

修复

如果要将所有文件合并到一个文件中(并且您可能正在使用_references.ts文件),请确保引用的顺序正确。

/// <reference path="file-a.ts" />
/// <reference path="file-b.ts" />

如果您使用的是脚本标记,则类似的修复(确保您使用.js扩展并检查加载顺序)...

<script src="file-a.js"></script>
<script src="file-b.js"></script>