我正在尝试将此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,我不认为它涉及这个问题。
答案 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/