所以我试图在我们的项目中升级到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.
Run Code Online (Sandbox Code Playgroud)
好像这段代码:
jQuery('selector').on('event',
(event, component, mouseClickPagePosition) => {
// code
});
Run Code Online (Sandbox Code Playgroud)
不能与此jQuery定义一起使用:
on(events: string, handler: (eventObject: JQueryEventObject, ...args: any[]) => any): JQuery;
Run Code Online (Sandbox Code Playgroud)
但方法签名似乎加起来了?
这段代码
jQuery('selector').on('event',
(event, component, mouseClickPagePosition) => {
// code
});
Run Code Online (Sandbox Code Playgroud)
应该写成这样:
jQuery('selector').on('event',
(event, component?, mouseClickPagePosition?) => {
// code
});
Run Code Online (Sandbox Code Playgroud)
回调on on指定将使用至少一个参数调用它,可能还有更多参数.提供的回调需要三个参数,因此被认为是错误.
这个代码只是偶然允许在0.9.5之前,但考虑到这是多么令人讨厌/不直观,它被认为是一个设计变更,允许这些参数是"必需的"而不是可选的.
| 归档时间: |
|
| 查看次数: |
527 次 |
| 最近记录: |