如何使用Typescript停止“属性不存在typesJQuery”语法错误?

我只在我的应用程序中使用一行jQuery:

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

但这是给我一个Typescript错误:

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

有人可以告诉我,我怎么能阻止这个错误出现?

你可以把它转换成<any>或扩展jquerytypes来添加你自己的方法。

  (<any>$("div.printArea")).printArea(); 

//或者添加自己的自定义方法(假设这是自定义插件的一部分)

 interface JQuery { printArea():void; } 

我认为这是最可读的解决scheme:

 ($("div.printArea") as any).printArea(); 
 You can cast it to <any> (<any>$('.selector') ).function(); Ex: date picker initialize using jquery (<any>$('.datepicker') ).datepicker(); 

对于你的例子,你可以添加这个:

 interface JQuery{ printArea():void; } 

编辑:哎呀,basarat下面是正确的。 我不知道为什么我认为这是编译,但我已经更新了这个答案。

由于printArea是一个jQuery插件,它不包含在jquery.d.ts中。

您需要创build一个jquery.printArea.ts定义文件。

如果你为这个插件创build了一个完整的定义文件,你可能想把它提交给DefinitelyTyped 。