使用typescript扩展JQueryStatic

到目前为止,我已经为
JQuery添加了扩展方法,如下所示:

module JQueryExtensions {
    export function foo() {
        ...
    }
}
interface JQuery {
    foo(): JQuery;
}
(function ($) {
    $.fn.foo = function (): JQuery {
    ...
    return this;
    };
})(jQuery);

它作为JQuery实例的扩展方法很好,比如$(‘selector’).foo().
但现在我需要添加一个静态函数,以便能够像$.foo();

我尝试用“JQueryStatic”替换“JQuery”,如下所示:

module JQueryExtensions {
    export function foo() {
        ...
    }
}
interface JQueryStatic{
    foo(): JQuery;
}
(function ($) {
    $.fn.foo = function (): JQuery {
    ...
    return this;
    };
})(JQueryStatic);

但它给了我以下错误:“找不到名字’JQueryStatic’.”

最佳答案 只需传递jQuery(函数/类型定义)而不是JQueryStatic(接口)并使用$.foo =(静态方法)而不是$.fn.foo =(实例方法)

(function ($:JQueryStatic) {
    $.foo = function (): JQuery {
        ...
    };
})(jQuery);
点赞