技术栈

ts装饰器保存this指向

Jedi Hongbin2023-09-25 0:32

要使用 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);
  };
};
上一篇:python经典百题之字符反转
下一篇:2023年中国研究生数学建模竞赛D题
相关推荐
wjs2024
20 小时前
JavaScript 语句
开发语言
cmpxr_
21 小时前
【C】局部变量和全局变量及同名情况
c语言·开发语言
小碗羊肉
1 天前
【从零开始学Java | 第三十一篇下】Stream流
java·开发语言
竹林818
1 天前
RainbowKit 快速集成多链钱包连接:从“连不上”到丝滑切换的踩坑实录
前端·javascript
aq5535600
1 天前
Laravel10.x重磅升级,新特性一览
android·java·开发语言
报错小能手
1 天前
ios开发方向——swift错误处理:do/try/catch、Result、throws
开发语言·学习·ios·swift
嗜好ya
1 天前
解决 Vite 项目中 import.meta.env 变量为 undefined 的问题
前端·javascript·vue.js
心连欣
1 天前
JS算法入门:图解“冒泡排序”,彻底搞懂双重循环的奥义
前端·javascript
热门推荐
012026年4月技术前沿:AI大模型爆发、智能体革命与量子安全新纪元02一周AI热点速览(2026.03.31-04.06):GPT-6曝光、谷歌开源Gemma 4、资本狂飙与模型军备竞赛03GitHub 镜像站点04基于 Docker 部署 Hermes Agent 并接入飞书机器人的完整指南05GPT-6核心能力解析及与现有主流大模型对比06免费!不限量!用opencode接入英伟达(NVIDIA)大模型,轻松打造你的 AI 编程助手07从限购到畅通:GLM-5.1 Coding Plan接入攻略08LLM Wiki:让大模型替你打理知识库的完整指南09零成本!Ollama本地部署国产大模型全指南(支持Kimi-K2.5/GLM-5/Qwen,新手秒上手)10AI Weekly | 2026年4月第二周 · GitHub热门项目与AI发展趋势深度解析