我在这里做一个简单的例子,我使用 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”关键字 {create:this.create} 的 Typescript 时遇到错误
我不明白我做错了什么。我刚刚将 Phaser.Game 类的构造函数调用到 GameName 类的构造函数中,并将 Phaser.Game 类的创建函数作为参数添加到 super 构造函数。
错误:在派生类的构造函数中访问“this”之前必须调用“super”。
最佳答案
尝试将 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
关于javascript - Typescript - "this"关键字错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42267693/