Typescript 打字脚本可以';找不到在超类中定义的方法';类型定义。什么';怎么了?
我使用的是JointJS,它定义了打字。在这里,我定义了一个Typescript类,如下所示:Typescript 打字脚本可以';找不到在超类中定义的方法';类型定义。什么';怎么了?,typescript,inheritance,typescript-typings,Typescript,Inheritance,Typescript Typings,我使用的是JointJS,它定义了打字。在这里,我定义了一个Typescript类,如下所示: namespace joint { namespace shapes { namespace devs { class Model extends basic.Generic { ... } } } } namespace basic { class Generic extends dia.Element { ... }
namespace joint {
namespace shapes {
namespace devs {
class Model extends basic.Generic { ... }
}
}
}
namespace basic {
class Generic extends dia.Element { ... }
}
namespace dia {
class Element extends Cell { ... }
class Cell extends Backbone.Model { ... }
}
namespace Backbone {
class Model extends ModelBase {
...
defaults(): ObjectHash;
}
因此,最终,joint.shapes.devs.Model应该定义默认属性,该属性继承自
Generic,defaults
属性不存在于Model
类型上,而存在于Model
实例上,即在newmodel
创建的对象上。没有实例,它们就是毫无意义
那么,让我们看看extend()
方法的定义:
public static extend(properties: any, classProperties?: any): any;
因此,将此变量作为classProperties
传递。这个参数似乎反映了静态属性,即您可以通过extendedModel.propName
访问的属性。如果您不打算使用此语法,可以将此参数留空,因为它是可选的
最后,如果您熟悉ES6类,似乎建议您使用它们(根据定义中的注释)。在这种情况下,您的意图表达如下:
class extendedModel extends joint.shapes.devs.Model {
// new properties go here
}
public static extend(properties: any, classProperties?: any): any;
class extendedModel extends joint.shapes.devs.Model {
// new properties go here
}