Как я могу остановить синтаксические ошибки "свойство не существует при типе JQuery" при использовании Typescript?
Я использую только одну строку jQuery в своем приложении:
$("div.printArea").printArea();
Но это дает мне ошибку Typescript:
The property 'printArea' does not exist on type JQuery?
Может кто-нибудь сказать мне, как я могу остановить эту ошибку?
Ответы
Ответ 1
Вы можете применить его к <any>
или расширить набор параметров jquery, чтобы добавить свой собственный метод.
(<any>$("div.printArea")).printArea();
//Или добавьте свои собственные методы (предположим, что это добавлено самостоятельно как часть настраиваемого плагина)
interface JQuery {
printArea():void;
}
Ответ 2
Я думаю, что это наиболее читаемое решение:
($("div.printArea") as any).printArea();
Ответ 3
Вы можете
(<any>$('.selector') ).function();
Пример: инициализация даты, используя jquery
(<any>$('.datepicker') ).datepicker();
Ответ 4
В вашем примере вы должны добавить следующее:
interface JQuery{
printArea():void;
}
Изменить: oops, basarat приведен ниже. Я не уверен, почему я думал, что это компиляция, но я обновил этот ответ.
Ответ 5
Так как printArea является плагином jQuery, он не включен в jquery.d.ts.
Вам нужно создать файл определения jquery.printArea.ts.
Если вы создадите полный файл определения для плагина, вы можете отправить его на DefinitelyTyped.
Ответ 6
Вы также можете написать так:
let elem: any;
elem = $("div.printArea");
elem.printArea();