将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定义?
答案 0 :(得分:2)
现在发布的代码自@types/jquery@3.3.12
起(由DefinitelyTyped/DefinitelyTyped#29503修复)。
对于较旧的版本,您必须在项目中添加以下声明。
interface JQueryStatic {
expr: any;
}
此声明将与JQueryStatic
中的@types/jquery
声明合并,并使expr
可用。