TypeScript无法识别$ .ajax调用

时间:2012-10-29 08:06:38

标签: javascript typescript

我有以下代码:

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

TypeScript指向$ .ajax,并显示一条消息:

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

然而,从我可以看到我的$ .ajax是正确的,我正确引用jQuery定义。任何人都可以建议可能出错的地方吗?

2 个答案:

答案 0 :(得分:4)

参考jquery.d.ts:

ajax(url: string, settings: JQueryAjaxSettings);

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

答案 1 :(得分:3)

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

还有https://github.com/borisyankov/DefinitelyTyped

上最新更新的jQuery定义的镜像