在TypeScript中定义的类.constructor

时间:2012-11-28 04:58:34

标签: typescript

export class Entity {
    add(component: Component, componentClass?: { new (): Component;}): Entity {
        if (!componentClass) {
            componentClass = component.constructor
        }

        /** sniiiiip **/
    }
}

示例的第4行(分配component.constructor)导致编译器抱怨:

  

“Component”

类型的值上不存在属性“构造函数”

获取对象构造函数的引用的正确方法是什么?我的理解是,JavaScript中的所有对象都有一个.constructor属性,该属性指向用于创建该对象的构造函数...

1 个答案:

答案 0 :(得分:8)

这在类型代码中非常罕见,默认情况下它不包含在Object的定义中。您只需转换为any

componentClass = (<any>component).constructor;