在接受eventdata的typescript中,jquery onclick事件的预期处理程序是什么样子的?
没有eventData的处理程序可以如下定义:
let onClick(event: JQuery.Event): void
可以这样注册:
$("#btn").click(onClick);
像这样注册时,在
my test fiddle
:
$("#btn").click("data3", onClick);
但我的IDE抱怨道:
类型为'(event:event)的错误ts2345(ts)参数
=>any'不能分配给'eventhandler eventhandlerbase>'类型的参数。type'(event:event)=>any'不能分配给类型“eventhandlerbase>”。
参数“event”和“t”的类型不兼容。
类型“event”不能分配给类型“event”。
类型“data3”不能分配给类型“null”。
我知道在第一种情况下(没有eventdata),处理程序的类型是:
JQuery.EventHandler<TElement>
在第二种情况下(使用eventdata):
JQuery.EventHandler<TElement, TData>
哪里
TData
是EventData的类型(在我的示例中为字符串)。但是,如何使用有效且类型安全的typescript语法声明这样的事件处理程序?