使用typescript扩展JQueryStatic

时间:2016-07-31 06:00:05

标签: typescript

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

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

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

一样调用它

我尝试过更换" JQuery"用" JQueryStatic"像这样:

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

但是它给了我以下错误:"找不到名字' JQueryStatic'。"

1 个答案:

答案 0 :(得分:2)

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

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