使用typescript扩展JQueryStatic
到目前为止,我已经向JQuery添加了如下扩展方法:使用typescript扩展JQueryStatic,typescript,Typescript,到目前为止,我已经向JQuery添加了如下扩展方法: module JQueryExtensions { export function foo() { ... } } interface JQuery { foo(): JQuery; } (function ($) { $.fn.foo = function (): JQuery { ... return this; }; })(jQuery); module JQue
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,效果不错。请把它作为答案贴出来。