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);
  };
};
相关推荐
C++ 老炮儿的技术栈16 分钟前
C/C++ 中 inline(内联函数)和宏定义(#define)的区别
开发语言·c++·git·算法·机器人·visual studio
我什么都学不会21 分钟前
Python练习作业2
开发语言·python
henujolly1 小时前
ethers.js读取合约信息
开发语言·javascript·区块链
Eugene__Chen1 小时前
Java关键字(曼波版)
java·开发语言
wuhen_n1 小时前
高阶函数与泛型函数的类型体操
前端·javascript·typescript
无望__wsk1 小时前
Python第一次作业
开发语言·python·算法
Word码1 小时前
[C++语法]-vector(用法详解及实现)
开发语言·c++
代码雕刻家2 小时前
4.3.多线程&JUC-多线程的实现方式
java·开发语言
梦6502 小时前
网络传输七层协议
开发语言·网络·php
南 阳2 小时前
Python从入门到精通day16
开发语言·python·算法