我在这里做一个简单的例子,我正在使用Phaser库。
module GameName {
class GameName extends Phaser.Game{
constructor(width?:number, height?:number){
super(width, height, Phaser.AUTO, 'PhaserDemo', {create:this.create});
}
create() {
this.state.add("Preloader", Preloader, true);
}
}
window.onload = () => {
new GameName(1280, 720);
}
}
所以我在这里编译“this”关键字上的Typescript时遇到错误{create:this.create}
我无法理解我做错了什么。我只是将Phaser.Game类的构造函数调用到我的GameName类的构造函数中,并且我将Phaser.Game类的create函数作为参数添加到超级构造函数中。
错误:必须在派生类的构造函数中访问“this”之前调用 'super'。
答案 0 :(得分:1)
尝试在匿名函数中包装this.create
函数
constructor(width?:number, height?:number){
super(width, height, Phaser.AUTO, 'PhaserDemo', {
create: () => this.create(),
});
}
this
(?)this
可能在创建回调中未定义,请参阅:https://github.com/Microsoft/TypeScript/wiki/%27this%27-in-TypeScript