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);
  };
};
相关推荐
梦游钓鱼3 分钟前
Logger.h和Logger.cc文件分析
开发语言·c++
CRMEB系统商城9 分钟前
CRMEB标准版系统(PHP)v6.0公测版发布,商城主题市场上线~
java·开发语言·小程序·php
yangminlei19 分钟前
openclaw对接飞书
开发语言·python·飞书
临溟夜空的繁星1 小时前
C++ STL-- vector
开发语言·c++
SuperEugene1 小时前
NPM Script 实战:常用命令设计与封装|Vue 工程化篇
前端·javascript·vue.js·前端框架·npm
XiYang-DING1 小时前
【Java SE】Java代码块详解
java·开发语言·python
摇滚侠1 小时前
Java SpringBoot 项目,项目启动后执行的方法,有哪些方式实现
java·开发语言·spring boot
Dragon Wu1 小时前
Taro 小程序开发注意事项(不定期记录更新)
前端·javascript·小程序·typescript·taro
艾莉丝努力练剑1 小时前
【Linux进程间通信:共享内存】为什么共享内存的 key 值由用户设置
java·linux·运维·服务器·开发语言·数据库·mysql
wangfpp1 小时前
多端统一你真的会了吗?
前端·javascript·架构