export class Entity {
add(component: Component, componentClass?: { new (): Component;}): Entity {
if (!componentClass) {
componentClass = component.constructor
}
/** sniiiiip **/
}
}
示例的第4行(分配component.constructor)导致编译器抱怨:
“Component”
类型的值上不存在属性“构造函数”
获取对象构造函数的引用的正确方法是什么?我的理解是,JavaScript中的所有对象都有一个.constructor属性,该属性指向用于创建该对象的构造函数...
答案 0 :(得分:8)
这在类型代码中非常罕见,默认情况下它不包含在Object
的定义中。您只需转换为any
:
componentClass = (<any>component).constructor;