ts装饰器保存this指向

要使用 function 而不是 箭头函数

typescript 复制代码
interface MethodDecorator<T> {
  (
    target: Object,
    propertyKey: string | symbol,
    descriptor: TypedPropertyDescriptor<T>
  ): TypedPropertyDescriptor<T> | void;
}

type TMethodDecorator = MethodDecorator<any>;

const matchImport: TMethodDecorator = (target, propertyKey, descriptor) => {
  const callback = descriptor.value;

  descriptor.value = function (...args: any[]) {
    console.log("decorator", this);
    return callback.call(this, ...args);
  };
};
相关推荐
小白探索世界欧耶!~10 分钟前
Vue2项目引入sortablejs实现表格行拖曳排序
前端·javascript·vue.js·经验分享·elementui·html·echarts
Cosmoshhhyyy1 小时前
《Effective Java》解读第39条:注解优先于命名模式
java·开发语言
清水白石0081 小时前
Python 纯函数编程:从理念到实战的完整指南
开发语言·python
掘根2 小时前
【C++STL】平衡二叉树(AVL树)
开发语言·数据结构·c++
叫我一声阿雷吧2 小时前
JS实现响应式导航栏(移动端汉堡菜单)|适配多端+无缝交互【附完整源码】
开发语言·javascript·交互
前路不黑暗@2 小时前
Java项目:Java脚手架项目的文件服务(八)
java·开发语言·spring boot·学习·spring cloud·docker·maven
毅炼2 小时前
Java 集合常见问题总结(3)
java·开发语言·后端
沐知全栈开发2 小时前
ionic 对话框:深度解析与最佳实践
开发语言
浅念-3 小时前
C++ string类
开发语言·c++·经验分享·笔记·学习