Je n'utilise qu'une seule ligne de jQuery dans mon application:
$("div.printArea").printArea();
Mais cela me donne une erreur TypeScript:
La propriété 'printArea' n'existe pas sur le type JQuery?
Quelqu'un peut-il me dire comment je peux empêcher cette erreur d'apparaître?
Vous pouvez le lancer sur <any>
ou prolongez le jquery en ajoutant votre propre méthode.
(<any>$("div.printArea")).printArea();
// Ou ajoutez vos propres méthodes personnalisées (en supposant que cela soit ajouté par vous-même dans le cadre d'un plugin personnalisé)
interface JQuery {
printArea():void;
}
Je pense que c'est la solution la plus lisible:
($("div.printArea") as any).printArea();
Vous pouvez le jeter à
(<any>$('.selector') ).function();
Ex: le sélecteur de date s'initialise en utilisant jquery
(<any>$('.datepicker') ).datepicker();
Pour votre exemple, vous ajouteriez ceci:
interface JQuery{
printArea():void;
}
Edit: oups, le basarat est correct ci-dessous. Je ne sais pas pourquoi je pensais que c'était en train de compiler mais j'ai mis à jour cette réponse.
Comme printArea est un plugin jQuery, il n’est pas inclus dans jquery.d.ts.
Vous devez créer un fichier de définition jquery.printArea.ts.
Si vous créez un fichier de définition complet pour le plug-in, vous voudrez peut-être le soumettre à DefinitelyTyped .
Vous pouvez aussi l'écrire comme ceci:
let elem: any;
elem = $("div.printArea");
elem.printArea();