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);
  };
};
相关推荐
读忆2 分钟前
在前端开发中使用组件后, 若是出了bug, 应该如何排查, 怎么排查, 解决方式是什么?
前端·javascript·vue.js·bug
2301_776508724 分钟前
C++中的组合模式变体
开发语言·c++·算法
Aevget5 分钟前
界面控件DevExpress JS & ASP.NET Core v25.2新版亮点 - AI驱动扩展功能升级
javascript·asp.net·界面控件·devexpress·ui开发
历程里程碑6 分钟前
44. TCP -23Linux聊天室实现命令符功能
java·linux·开发语言·数据结构·c++·排序算法·tcp
2301_7938046910 分钟前
模板代码安全性增强
开发语言·c++·算法
干啥啥不行,秃头第一名13 分钟前
C++中的观察者模式
开发语言·c++·算法
SuperEugene13 分钟前
Vue3 + Vue Router + Pinia 路由守卫规范:beforeEach 应做 / 不应做,避死循环、防重复请求|状态管理与路由规范篇
开发语言·前端·javascript·vue.js·前端框架
桃气媛媛16 分钟前
python流程控制-匹配语句match
开发语言·python
东东__net18 分钟前
js逆向与谷歌加密库
开发语言·前端·javascript
ulias21221 分钟前
C++ 异常处理机制
java·开发语言·c++