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

        /** sniiiiip **/
    }
}

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

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

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

4

1 回答 1

10

这在类型化代码中非常罕见,默认情况下它不包含在Object. 您可以简单地转换为any

componentClass = (<any>component).constructor;
于 2012-11-28T08:43:01.473 回答