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);
  };
};
相关推荐
前端小D14 小时前
JS模块化
开发语言·前端·javascript
无限码力14 小时前
华为OD技术面真题 - JAVA开发- spring框架 - 7
java·开发语言·华为od·华为od面试真题·华为odjava八股文·华为odjava开发题目·华为odjava开发高频题目
05大叔14 小时前
优化器Adam,神经网络处理文本,CNN,RNN
开发语言·python·机器学习
Lyyaoo.14 小时前
【JAVA基础面经】JAVA中的异常
java·开发语言
ByteCraze14 小时前
JavaScript 深拷贝完全指南:从入门到精通
开发语言·javascript·ecmascript
wenzhangli714 小时前
ooderAgent 龙虾时代的统一认证体系
开发语言·php
用户842981424181014 小时前
3个Html加密工具
javascript
I Promise3414 小时前
C++ 基础数据结构与 STL 容器详解
开发语言·数据结构·c++
morrisonwu14 小时前
kafka4.2对应php rdkafka扩展安装以及php的producer和consumer写法及避坑
开发语言·php
Lyyaoo.14 小时前
【JAVA基础面经】== 和 equals() 的区别
java·开发语言·jvm