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);
  };
};
相关推荐
独自破碎E3 分钟前
JDK版本的区别
java·开发语言
谦宸、墨白15 分钟前
从零开始学C++:二叉树进阶
开发语言·数据结构·c++
建群新人小猿36 分钟前
陀螺匠企业助手—个人简历
android·大数据·开发语言·前端·数据库
千金裘换酒1 小时前
栈和队列定义及常用语法 LeetCode
java·开发语言
be or not to be1 小时前
JavaScript 对象与原型
开发语言·javascript·ecmascript
0x531 小时前
JAVA|智能无人机平台(二)
java·开发语言·无人机
前端 贾公子1 小时前
Git优雅使用:git tag操作
javascript·github
嵌入小生0072 小时前
基于Linux系统下的C语言程序错误及常见内存问题调试方法教程(嵌入式-Linux-C语言)
linux·c语言·开发语言·嵌入式·小白·内存管理调试·程序错误调试
小温冲冲2 小时前
QPixmap 详解:Qt 中的高效图像处理类
开发语言·图像处理·qt
面汤放盐2 小时前
企业权限--系统性方案探究
java·开发语言