微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – 使用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',mouseClickPagePosition) => {
              // code
            });

应该写成这样:

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

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

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

原文地址:https://www.jb51.cc/jquery/180752.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐