onclick回调函数传参问题

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

qq_theHermes_03160332

2019-07-30

interface UIElement {
addClickListener(onclick:(this:void,e:Event)=>void):void
}
class Handler {
type:string
onClickBad = (e:Event)=>{
this.type = type
}
}
let h = new Handler()
let uiElement:UIElement = {
addClickListerner(){
}
}

uiElement.addClickListener(h.onCilckBad)

  1. addClickListener 中 onclick 回调函数 不是接受两个参数吗,一个this, 一个 e,但 在onClickBad 中只有一个参数e啊,这是为什么啊,望老师解答
写回答

1回答

ustbhuangyi

2019-07-31

这个是 this 参数,它是一个假的参数,它在这里是相当于告诉 TypeScript 编译器,在执行 onclick 回掉函数中,这个 this 是空。

0
2
大头爸爸啊
老师没明白 “它是一个假的参数” 是什么意思,意思是 函数中 有this作为参数,调用的时候 都能省略吗? 还有个问题,申明变量uiElement的时候,里面的addClickListener中没写参数onclick, 但是上面接口UIEment中的addClickListener中是 有写onclick参数的, onclick是必填参数 不是可选参数啊,下面为什么可以省略不写?
2020-10-12
共2条回复

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

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

2629 学习 · 877 问题

查看课程