这是为类的方法写的装饰器函数
function autoSave (_target: BookmarkModel, _name: string, descriptor: PropertyDescriptor): PropertyDescriptor {
const value = descriptor.value
descriptor.value = function (...args: never): boolean {
const ret = value.apply(this, args)
if (ret === true) {
this.save()
}
return ret
}
return descriptor
}
代码强行执行是完全 OK 的,但是 this.save()这行报个错:
类型“PropertyDescriptor”上不存在属性“save”。
this.save()实际就是执行类实例上的 save 方法完全没问题,但现在这样我就很懵,怎么解决
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.