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 { ... }

我使用的是JointJS,它定义了打字。在这里,我定义了一个Typescript类,如下所示:

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
}