我有一个较旧的 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);
对象现在初始化不正确。
我自己没有发现问题,也没有找到任何自定义对象初始化的例子
如果有人能帮助我,我会很高兴。谢谢!
我也有同样的问题。解决办法如下:
fabric.Object.prototype.initialize = (function (initialize) {
return function (_options) {
const options = {...yourCustomOptions, ...(_options ?? {})}
return initialize.apply(this, [options]);
};
})(fabric.Object.prototype.initialize);