【问题标题】:Trying to convert JQuery plugin to TypeScript尝试将 JQuery 插件转换为 TypeScript
【发布时间】:2013-12-11 12:56:25
【问题描述】:

我正在尝试将此 JQuery 插件转换为打字稿:

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) : Argument does not match parameters.

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,我认为它与这个问题无关。

【问题讨论】:

    标签: jquery typescript


    【解决方案1】:

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

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

    【讨论】:

    • 我修改了那个,但是错误还没有消失。错误显示在代码中的“$(this)”部分。我不确定这是否正确。
    • @EternallyCurious 在点后换行(this)。验证错误原因
    • 您的代码确实有效。 $(this) 的问题是另一个问题。
    【解决方案2】:

    将“$(this)”更改为“$form”或仅将“this”更改为有效。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-16
        • 1970-01-01
        • 2018-12-04
        • 2011-07-28
        • 2016-11-05
        • 1970-01-01
        • 2022-10-18
        • 2018-05-26
        相关资源
        最近更新 更多