如何在TypeScript中扩展JQuery 3选择器

时间:2018-06-06 18:24:12

标签: jquery typescript

将JQuery从2升级到3后,最新的TypeScript定义不再包含:

expr: any;

我们的代码库扩展了JQuery选择器,以提供不区分大小写的选择器:

    $.extend($.expr[":"], {
        containsCaseInsensitive: (elem: any, i: number, match: any, array: any) =>
            (elem.textContent || elem.innerText || "").toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0
    });

使用最新的TS定义,这不再是一个问题。有没有办法在JQuery 3中提供相同的功能而无需手动更新JQuery的TS定义?

1 个答案:

答案 0 :(得分:2)

现在发布的代码自@types/jquery@3.3.12起(由DefinitelyTyped/DefinitelyTyped#29503修复)。


对于较旧的版本,您必须在项目中添加以下声明。

interface JQueryStatic {
    expr: any;
}

此声明将与JQueryStatic中的@types/jquery声明合并,并使expr可用。