Javascript 在TypeScript中,JQuery和JQueryStatic接口之间有什么区别?
有人能解释一下吗?我意识到jQuery接口是预定义的接口,但什么是JQueryStatic 我有以下资料:Javascript 在TypeScript中,JQuery和JQueryStatic接口之间有什么区别?,javascript,jquery,typescript,Javascript,Jquery,Typescript,有人能解释一下吗?我意识到jQuery接口是预定义的接口,但什么是JQueryStatic 我有以下资料: (function($) { $.fn.disableBt = function() { $(this).attr('disabled', true); if ($.browser.msie && $.browser.version < 9) { $(this).addClass
(function($)
{
$.fn.disableBt = function()
{
$(this).attr('disabled', true);
if ($.browser.msie && $.browser.version < 9)
{
$(this).addClass('disabled');
}
}
})(jQuery);
我尝试将其添加到jQueryStatic,但似乎不起作用:
interface JQueryStatic {
modal( options );
disableBt();
}
以下是在my modal中定义选项的方式:
$.modal.defaults = {
content: false,
useIframe: false,
...
...
var settings = $.extend({}, $.modal.defaults, options),
是否定义了“选项”(在模态(选项)中)
JQueryStatic接口具有静态方法(“在$上的方法和jQuery本身”)
JQuery接口具有可以在JQuery元素上运行的成员,其中许多都返回JQuery本身以实现可链接性
interface JQueryStatic {
someAdditionalMethod(): any;
}
$.someAdditionalMethod();
interface JQuery {
pluginMethod(): JQuery;
}
$("body").pluginMethod();
如果您的案例与此类似:
disableBt();
}
interface ModalDefaultOptions {
content?: bool;
useIframe?: bool;
}
interface JQueryStatic {
modal: {
defaults: ModalDefaultOptions;
};
}
interface JQuery {
disableBt(): void; // or :JQuery if you returned 'this' from the function
}
$("#someButton").disableBt();
$.modal.defaults.content = false;
@jeoriks-我刚刚在我的问题中添加了选项的声明/定义方式。我不确定如何或是否可以用typescript添加该定义信息。可能吗?如果我声明foo():any,那么这将允许foo和typescript的任何参数组合不会对它们进行检查,我这样说对吗。我说的唯一需要扩展的接口是JQueryStatic,我没有理由需要扩展JQuery接口,对吗?啊,对不起,我误解了原来的问题。我现在更新了我的答案。我将开始将成员定义为any(modal:any),看看它是否按预期工作,然后我将添加详细的类型。确保如果使用模块,不要将
JQuery
接口声明放在模块内。它必须位于全局顶级命名空间中,否则您将定义自己的JQuery接口,而不是合并到$one中