请问老师一下ts中箭头函数this~

来源:3-19 函数 - this+ 重载

hy_wang

2019-04-29

http://img.mukewang.com/szimg/5cc6cf5a0001a84109500306.jpg

老师这里我不太明白,实在是打扰老师了~比较笨

ES6中的箭头函数是向上寻找作用域的this上下文 我理解是onClickBad这个方法的this是Class Handler的

而Class Handler的 没有显示规定this的类型 那么就是any类型的this? 所以这里可以匹配?

老师你的说法我不是很理解,箭头函数中的this是会向上寻找的,为什么会是void

就比如这段代码

function testFunction (this:Handler) {
return () => {
console.log(this)  //这里this的类型并不是void而是向上查找Handler的实例
}
}

万分感谢~实在是想不通。。

写回答

1回答

ustbhuangyi

2019-04-30

你下面举的例子, this 是 Handler 类型是没有问题的,因为 this 是箭头函数创建时候的 this 的值,它是在 testFunction 内部创建的,而 testFunction 提供的 this 参数指明它是一个 Handler 类型。

而你前面截图的例子,你理解的没错,没有明确指定 this 的类型那么这里 this 就是 any 类型的,是可以匹配 void 类型的。

0
0

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2631 学习 · 877 问题

查看课程