Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用typescript扩展JQueryStatic_Typescript - Fatal编程技术网

使用typescript扩展JQueryStatic

使用typescript扩展JQueryStatic,typescript,Typescript,到目前为止,我已经向JQuery添加了如下扩展方法: module JQueryExtensions { export function foo() { ... } } interface JQuery { foo(): JQuery; } (function ($) { $.fn.foo = function (): JQuery { ... return this; }; })(jQuery); module JQue

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

module JQueryExtensions {
    export function foo() {
        ...
    }
}
interface JQuery {
    foo(): JQuery;
}
(function ($) {
    $.fn.foo = function (): JQuery {
    ...
    return this;
    };
})(jQuery);
module JQueryExtensions {
    export function foo() {
        ...
    }
}
interface JQueryStatic{
    foo(): JQuery;
}
(function ($) {
    $.fn.foo = function (): JQuery {
    ...
    return this;
    };
})(JQueryStatic);
它很适合作为JQuery实例的扩展方法,比如$('selector').foo()。 但是现在我需要添加一个静态函数,以便能够像$.foo()那样调用它

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

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

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

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


只需传递
jQuery
而不是
JQueryStatic
,并使用
$.foo=
而不是
$。fn.foo=
谢谢@Aleksey,效果不错。请把它作为答案贴出来。