如何使用typescript扩展JointJs元素/链接

时间:2016-06-17 08:50:26

标签: typescript jointjs

如何使用typescript扩展JointJs元素/链接?

我尝试使用this.set("defaults", obj),但却被Jointjs忽略了。

1 个答案:

答案 0 :(得分:1)

JointJs有typescript的定义文件:https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/jointjs

JointJs模型是从Backbone扩展的,因此可以在构造函数中使用this.set(key, value)表达式,除了“defaults”参数,需要将其写为方法。

示例:

class MyType extends joint.shapes.basic.Rect {
  constructor(attributes?: any, options?: any) {
    super(attributes, options);
    this.set("markup", "<rect/>");
  }
  defaults(): Backbone.ObjectHash {
    return joint.util.deepSupplement({...}, joint.shapes.basic.Rect.prototype.defaults);
  }
}

MyType的子类中,可以使用super.defaults()

defaults(): Backbone.ObjectHash {
    return joint.util.deepSupplement({...}, super.defaults())
}