打字稿:如何在构造函数Function上声明原型Object的类型

时间:2013-04-13 09:29:32

标签: typescript

我收到了这个编译错误:

属性'prototype'在'Base'类型的值上不存在

在下面的类中,如何从构造函数函数中获取typescript将原型对象识别为一种本机Object?

interface IBase {
  extend: any;
  prototype : any;
}

declare var Base : IBase;

class Base implements IBase {

  constructor() {}

  public extend( mixins : any ) : void {
    _.extend( this.prototype, mixins );
  }

}

1 个答案:

答案 0 :(得分:3)

this.prototype可能不是你的意思,因为Base的实例没有prototype属性(在运行时看你自己)。但是,Base确实:

interface IBase {
  extend: any;
}

class Base implements IBase {
  constructor() {}

  public extend( mixins : any ) : void {
    _.extend(Base.prototype, mixins );
  }
}

当然,此时extend也可能是静态的,因为它适用于所有Base个实例。你的意思是这个吗?

  public extend( mixins : any ) : void {
    _.extend(this, mixins);
  }