Я використовую лише один рядок jQuery у своєму додатку:
$("div.printArea").printArea();
Але це видає мені помилку Typescript:
Властивість 'printArea' не існує для типу JQuery?
Хтось може сказати мені, як я можу зупинити появу цієї помилки?
Відповіді:
Ви можете передати його <any>або розширити введення jquery, щоб додати свій власний метод.
(<any>$("div.printArea")).printArea();
// Або додайте власні власні методи (припускаючи, що це додано вами самим як частина користувацького плагіна)
interface JQuery {
printArea():void;
}
interface JQueryшлях у зовнішньому модулі та визначите параметр функції як тип JQuery та спробуєте викликати його з іншого файлу, TypeScript поскаржиться, що існує два типи з іменем JQuery, які не пов’язані між собою.
declare global { ... }навколо декларації інтерфейсу.
Для вашого прикладу ви б додали таке:
interface JQuery{
printArea():void;
}
Редагувати: ой, басарат правильний нижче. Я не впевнений, чому я думав, що це компіляція, але я оновив цю відповідь.
$.inviewport(el)Ops$('selector').printArea
$('selector').printAreaскладає? Я не думаю. $.printAreaвсе-таки скомпілює. Ви були дуже ввічливими, тому не ображайте і не
Оскільки printArea - це плагін jQuery, він не входить до jquery.d.ts.
Вам потрібно створити файл визначення jquery.printArea.ts.
Якщо ви створюєте повний файл визначення для плагіна, ви можете надіслати його до DefinitelyTyped .
Error:(44, 23) TS2339: Property 'printArea' does not exist on type 'ElementFinder'.