fabric.js 中的自定义对象初始化

问题描述 投票:0回答:1

我有一个较旧的 Fabric.js 项目,我想对其进行现代化改造。
在此项目中,在对象初始化期间应考虑用户定义的属性。
下面的例子应该展示它在原始项目中是如何解决的:

fabric.Object.prototype.initialize = (function (initialize) {
    return function (element, options) {
        let lock = element.lock;
        element.lockMovementX = lock; 
        element.lockMovementY = lock;
        return fabric.util.object.extend(initialize.call(this, element, options), {});
})(fabric.Object.prototype.initialize);

项目的这部分应该改为typescript。
只要遵循我的 IDE 的建议就会导致以下结果:

fabric.Object.prototype.initialize = (function (initialize) {
    return (element: fabric.IObjectOptions | undefined, options?: fabric.IObjectOptions | undefined) => {
        // do something
        return fabric.util.object.extend(initialize.call(element, options), {});
    };
})(fabric.Object.prototype.initialize);

对象现在初始化不正确。
我自己没有发现问题,也没有找到任何自定义对象初始化的例子

如果有人能帮助我,我会很高兴。谢谢!

javascript fabricjs
1个回答
0
投票

我也有同样的问题。解决办法如下:

 fabric.Object.prototype.initialize = (function (initialize) {
    return function (_options) {
      const options = {...yourCustomOptions, ...(_options ?? {})}
      
      return initialize.apply(this, [options]);
    };
  })(fabric.Object.prototype.initialize);
© www.soinside.com 2019 - 2024. All rights reserved.