实体获取组件参数补全

This commit is contained in:
yhh
2021-04-01 15:48:30 +08:00
parent 781bad9573
commit c58ca510cc
3 changed files with 9 additions and 4 deletions

View File

@@ -375,12 +375,12 @@ declare module es {
* 检查实体是否具有该组件
* @param type
*/
hasComponent<T extends Component>(type: any): boolean;
hasComponent<T extends Component>(type: new (...args: any[]) => T): boolean;
/**
* 获取类型T的第一个组件并返回它。如果没有找到组件将创建组件。
* @param type
*/
getOrCreateComponent<T extends Component>(type: any): T;
getOrCreateComponent<T extends Component>(type: new (...args: any[]) => T): T;
/**
* 获取typeName类型的所有组件但不使用列表分配
* @param typeName

View File

@@ -424,7 +424,7 @@ module es {
* 检查实体是否具有该组件
* @param type
*/
public hasComponent<T extends Component>(type) {
public hasComponent<T extends Component>(type: new (...args) => T) {
return this.components.getComponent<T>(type, false) != null;
}
@@ -432,7 +432,7 @@ module es {
* 获取类型T的第一个组件并返回它。如果没有找到组件将创建组件。
* @param type
*/
public getOrCreateComponent<T extends Component>(type) {
public getOrCreateComponent<T extends Component>(type: new (...args) => T) {
let comp = this.components.getComponent<T>(type, true);
if (!comp) {
comp = this.addComponent<T>(new type());