带有var args的Typescript 0.9.5编译失败

所以我试图在我们的项目中升级到typescript 0.9.5,但我目前卡住了。

这是从编译器中恢复的错误:

error TS2082: Supplied parameters do not match any signature of call target: Call signatures of types '(event: JQueryEventObject, component: any, mouseClickPagePosition: any) => void' and '(eventObject: JQueryEventObject, ...args: any[]) => any' are incompatible: Call signature expects 1 or fewer parameters. 

好像这段代码:

 jQuery('selector').on('event', (event, component, mouseClickPagePosition) => { // code }); 

不能与此jQuery定义一起使用:

 on(events: string, handler: (eventObject: JQueryEventObject, ...args: any[]) => any): JQuery; 

但方法签名似乎加起来了?

这段代码

 jQuery('selector').on('event', (event, component, mouseClickPagePosition) => { // code }); 

应该写成这样:

 jQuery('selector').on('event', (event, component?, mouseClickPagePosition?) => { // code }); 

on on on的回调指定将使用至少一个参数调用它, 可能还有更多参数。 提供的回调需要三个参数,因此被认为是错误。

这段代码只是偶然允许在0.9.5之前,但考虑到这是多么令人讨厌/不直观,它被认为是一种设计变更,允许这些参数是“必需的”而不是可选的。