【问题标题】:Extend JQueryStatic with typescript使用打字稿扩展 JQueryStatic
【发布时间】:2016-08-01 13:35:29
【问题描述】:

到目前为止,我已经向 JQuery 添加了这样的扩展方法:

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

它可以作为 $('selector').foo() 之类的 JQuery 实例的扩展方法。 但是现在我需要添加一个静态函数才能像 $.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 =
  • 谢谢@Aleksey,这很有效。请发布它作为答案。

标签: typescript


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2019-06-27
    • 2019-09-18
    • 2020-05-13
    • 2019-05-04
    • 2021-07-16
    • 2017-04-27
    • 2013-02-27
    相关资源
    最近更新 更多