Я начал свое приключение с Phaser.io, и я хотел создать проект на TypeScript, который бы в полной мере использовал преимущества его компилятора.Под этим я подразумеваю запуск TS в режиме strict
.Одним из преимуществ (для меня) является дополнительная безопасность от обнуляемого объекта.И это то, что не подходит для Phaser.
Все примеры, которые я видел до сих пор, предлагают написать следующий шаблон:
class MyScene extends Phaser.Scene {
player: null;
create() {
this.player = this.physics.add.image(...)
}
update() {
//...
if (cursors.left.isDown) {
this.player.setVelocity(-100)
}
}
}
Итак, создание nullable *Рекомендуется 1007 * член, а затем присвоить его значение.Вот где строгий режим TypeScript показывает ошибку: Object is possibly 'null'.
Лучшая идея, с которой мне приходилось сталкиваться в этой ситуации, - это использовать монады типа Maybe
.Но для меня это кажется излишним.Поэтому мне интересно, есть ли другие шаблоны или способы использования Phaser, которые позволили бы мне включить строгий режим, не заходя так далеко, как использование монад.