我开始使用Phaser.io,并希望创建一个TypeScript项目,充分利用它的编译器。我的意思是在
到目前为止,我看到的所有示例都建议按照以下模式编写:
因此,建议创建一个可空的
strict
模式下运行TS。其中之一的优点(对我来说)是从可空对象中获得额外的安全性。但这正是Phaser无法胜任的地方。到目前为止,我看到的所有示例都建议按照以下模式编写:
class MyScene extends Phaser.Scene {
player: null;
create() {
this.player = this.physics.add.image(...)
}
update() {
//...
if (cursors.left.isDown) {
this.player.setVelocity(-100)
}
}
}
因此,建议创建一个可空的
player
成员,然后分配它的值。这就是TypeScript严格模式显示错误的地方:Object is possibly 'null'.
我处理这种情况的最好想法是使用像Maybe
这样的单子。但在我看来,这似乎有些过度了。因此,我想知道是否有其他模式或使用Phaser的方法,可以让我在不使用单子的情况下启用严格模式。