Javascript 在TypeScript中,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

有人能解释一下吗?我意识到jQuery接口是预定义的接口,但什么是JQueryStatic

我有以下资料:

(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中