在typescript中扩展类时编译错误

时间:2014-02-15 03:47:26

标签: typescript

我看到了类似的问题:

Cross referencing with extended classes in TypeScipt

虽然我还无法弄清楚到底出了什么问题。我的问题是我有一个类游戏对象,我想扩展,但只要存在游戏对象的精灵类存在我得到一个错误

module Game {
export class GameObject {
    x = 0;
    y = 0;
    W = 0;
    H = 0;
    img = new Image();
    scale = 0;

    constructor(img, x, y, w, h, scale?) {
        this.img = img;
        this.x = x || 0;
        this.y = y || 0;
        this.W = w;
        this.H = h;
        this.scale = scale || 1;
    }
    update() {

    }
    render(context, x, y) {
        context.drawImage(this.img, this.x, this.y, this.W, this.H, x, y, this.W * this.scale, this.H * this.scale);
    }
}
}

module Game {
export class Sprite extends GameObject {

}
}

我收到以下错误:

未捕获的TypeError:无法读取属性'原型'未定义的

未捕获的TypeError:undefined不是函数

根据顶部的帖子,看起来我有一个循环依赖,它出于某种原因首先调用精灵类?

提前致谢。

1 个答案:

答案 0 :(得分:12)

我发现错误,显然当你将打字稿代码输出到一个javascript文件时,你无法正常扩展文件,所以你必须使用这样的///引用:

///<reference path='gameobject.ts' />
module Game {
    export class Sprite extends GameObject {
    }
}

发布信息:

https://typescript.codeplex.com/workitem/1590