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);
  };
};
相关推荐
charlie1145141913 分钟前
嵌入式现代C++:何时用 C++、用哪些 C++ 特性(折中与禁用项)
开发语言·c++·笔记·学习
山峰哥1 小时前
Python爬虫实战:从零构建高效数据采集系统
开发语言·数据库·爬虫·python·性能优化·架构
郝学胜-神的一滴2 小时前
使用OpenGL绘制卡通效果的圣诞树
开发语言·c++·程序人生·游戏·图形渲染
敲敲了个代码7 小时前
从硬编码到 Schema 推断:前端表单开发的工程化转型
前端·javascript·vue.js·学习·面试·职场和发展·前端框架
想回家的一天7 小时前
ECONNREFUSED ::1:8000 前端代理问题
开发语言
cike_y7 小时前
Mybatis之解析配置优化
java·开发语言·tomcat·mybatis·安全开发
Jay_Franklin8 小时前
SRIM通过python计算dap
开发语言·python
dly_blog9 小时前
Vue 响应式陷阱与解决方案(第19节)
前端·javascript·vue.js
Slow菜鸟9 小时前
Java基础架构设计(三)| 通用响应与异常处理(分布式应用通用方案)
java·开发语言
消失的旧时光-19439 小时前
401 自动刷新 Token 的完整架构设计(Dio 实战版)
开发语言·前端·javascript