试图将JQuery插件转换为TypeScript

时间:2013-12-06 12:14:55

标签: jquery typescript

我正在尝试将此JQuery插件转换为typescript:

http://malsup.com/jquery/form/#download

但是我无法让Intellisense识别打字稿中的功能。我只需要这个插件中的一个函数 - “ajaxSubmit”。我已经在我的打字稿项目中声明了它是一个.d.ts文件,并在主文件中添加了对它的引用。但是,Webstorm似乎不知道该功能并抛出错误。这是.d.ts

interface JQuery
{
    ajaxSubmit(error:any, success:any): JQuery;
}

我已经看过这个页面并尝试按照那里的说明进行操作。

Using jQuery plugin in TypeScript

这是实现AjaxSubmit的程序。 Webstorm抛出一个错误:$(this):参数与参数不匹配。

var $form = $("#fileUploadForm");
    $form.submit(function (e) {
        // perform client side validations if any

        $(this).ajaxSubmit({
            error: function () {
                // handle error
            },

            success: function (response) {
                // handle success
            }
        });

        // Important: stop event propagation
        return false;
    });

顺便说一句,我在后端使用NodeJS + ExpressJs,我不认为它涉及这个问题。

3 个答案:

答案 0 :(得分:1)

根据您的代码示例,签名应为:

interface JQuery
{
    ajaxSubmit(arg:{error:any, success:any}): JQuery;
}

答案 1 :(得分:0)

将“$(this)”改为“$ form”或只是“this”有效。

答案 2 :(得分:0)

Nuget有一个jquery表单插件的TypeScript定义:http://www.nuget.org/packages/jquery.form.TypeScript.DefinitelyTyped/