【问题标题】:$.ajax call not recognized by TypeScriptTypeScript 无法识别 $.ajax 调用
【发布时间】:2012-10-18 13:07:12
【问题描述】:

我有以下代码:

    $.ajax({
        url: modal.href,
        dataType: 'json',
        type: 'POST',
        data: modal.$form.serializeArray()
    })
        .done(onSubmitDone)
        .fail(onSubmitFail);

TypeScript 指向 $.ajax 并给出一条消息:

提供的参数与调用目标的任何签名都不匹配。

但是,据我所知,我的 $.ajax 是正确的,并且我正确地引用了 jQuery 定义。谁能提出什么问题?

【问题讨论】:

    标签: javascript typescript


    【解决方案1】:

    参考jquery.d.ts:

    ajax(url: string, settings: JQueryAjaxSettings);
    

    这是ajax函数的签名。您应该将 url 从设置对象中移出并作为参数传入,而不是让 typescript 接受。或者编辑 jquery.d.ts 定义以接受仅设置函数调用。

    【讨论】:

    • 现在已经不是这样了。签名ajax(settings: JQueryAjaxSettings); 存在于当前版本的 jquery.d.ts 中,所以他的代码现在应该可以正常工作了。
    【解决方案2】:

    虽然最初的 jQuery 定义不包含没有 Url 的重载,但它们已经更新,您可以从 CodePlex 获取最新版本: http://typescript.codeplex.com/SourceControl/BrowseLatest

    https://github.com/borisyankov/DefinitelyTyped 上还有一个最新更新的 jQuery 定义的镜像

    【讨论】:

      猜你喜欢
      • 2021-01-31
      • 2016-07-18
      • 2019-11-18
      • 2020-05-28
      • 1970-01-01
      • 2021-03-30
      • 1970-01-01
      • 2023-02-11
      • 2011-10-18
      相关资源
      最近更新 更多