Comment puis-je arrêter les erreurs de syntaxe «propriété n’existe pas sur le type JQuery» lors de l’utilisation de Typescript?

Je n’utilise qu’une seule ligne de jQuery dans mon application:

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

Mais cela me donne une erreur Typecript:

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

Quelqu’un peut-il me dire comment je peux empêcher cette erreur d’apparaître?

Vous pouvez le convertir en ou étendre le typage jquery pour append votre propre méthode.

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

// Ou append vos propres méthodes personnalisées (en supposant que ceci est 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(); 
 You can cast it to  ($('.selector') ).function(); Ex: date picker initialize using jquery ($('.datepicker') ).datepicker(); 

Pour votre exemple, vous appendiez ceci:

 interface JQuery{ printArea():void; } 

Edit: oops, basarat est correct ci-dessous. Je ne sais pas pourquoi je pensais que cela compilait mais j’ai mis à jour cette réponse.

PrintArea étant 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 pouvez le soumettre à DefinitelyTyped .

Vous pouvez aussi l’écrire comme ceci:

 let elem: any; elem = $("div.printArea"); elem.printArea();