typescript - 如何为类和单个对象制作模板?
问题描述
我用打字稿做简单的游戏。我想使用接口将其实现为类并将其用作创建新类的参数。
interface ObjectConstructor {
element: HTMLElement;
x_pos: number;
y_pos: number;
x_velocity: number;
y_velocity: number;
ele_width: number;
ele_height: number;
}
abstract class GameObject implements ObjectConstructor {
element: HTMLElement;
x_pos: number;
y_pos: number;
x_velocity: number;
y_velocity: number;
ele_width: number;
ele_height: number;
constructor(object: ObjectConstructor) {
this.element = object.element;
this.x_pos = object.x_pos;
this.y_pos = object.y_pos;
this.x_velocity = object.x_velocity;
this.y_velocity = object.y_velocity;
this.ele_width = object.ele_width;
this.ele_height = object.ele_height;
}
这在没有“实现”语句的情况下有效,但是当我添加它时,我得到与下面相同的错误。但是当我尝试使用接口变量制作单个对象时出现问题。
//creating player when initialazing new Game instance.
init(): void {
this.objects.Player = new Player(PlayerPrototype); //Player inherits from GameObject
}
}
let PlayerPrototype: ObjectConstructor = {
element: document.createElement("div"),
x_pos: Game.bodyWidth/2-30,
y_pos: Game.bodyHeight-50,
x_velocity: Game.properites.player_speed,
y_velocity: Game.properites.player_speed,
ele_width: 30,
ele_height: 50
};
我从编译器收到此错误: Type '{ element: HTMLDivElement; x_pos:数字;y_pos:数字;x_velocity:数字;y_velocity:数字;ele_width:数字;ele_height:数字;}' 缺少类型“ObjectConstructor”的以下属性:prototype、getPrototypeOf、getOwnPropertyDescriptor、getOwnPropertyNames 等 18 个。
我应该使用'Partial<>'语句还是使用'type'而不是'interface'?
解决方案
推荐阅读
- python-3.x - 使用 Pywinauto 自动上传照片时出错
- java - 如何使用共享首选项保存多个数据?
- java - Java中的LocalDate与JPA一起作为Oracle中的日期持久化
- php - 使用 PHP 函数保护 Sql 注入
- python - tensorflow softmax如何添加未知类?
- php - 如何将可重复的 xml 子标签导入一个 mysql 列
- git - 在 cPanel 中创建 git repo 时出现问题
- haskell - 向 Haskell 数据类型添加可能性(使用记录语法)
- python - 如何更改 Matplotlib 中刻度标签的文本方向?
- javascript - 防止用户在浏览器的另一个选项卡(asp.net)上提交后在页面上进行操作