Подтвердить что ты не робот

Как я могу остановить синтаксические ошибки "свойство не существует при типе JQuery" при использовании Typescript?

Я использую только одну строку jQuery в своем приложении:

$("div.printArea").printArea();

Но это дает мне ошибку Typescript:

The property 'printArea' does not exist on type JQuery?

Может кто-нибудь сказать мне, как я могу остановить эту ошибку?

4b9b3361

Ответ 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();