typescript 编译为es5 的 this 问题

mycn
  • 5
新手上路,请多包涵

我正在学习 typescript 过程中遇到如下问题

function func(thisarg, callback) {
    callback = callback.bind(thisarg);
    return callback();
}
const hello = {
    name: "joe",
}
func(hello, () => {
    console.log(this.name);// undefined
});

之后查看了编译结果

console.log(_this.name);// this => _this

尝试手动把 _this 改为 this ,之后在node下运行可以得到 joe 这个结果。希望路过的大佬能帮我解惑,我应该在 typescript 中怎样写才能的到想要的结果。

回复
阅读 794
2 个回答

func的第二个参数是箭头函数,箭头函数的this不能重现绑定啦,应该传入一个普通函数。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏