通过将 Angular 2 和 Typescript 与 JQuery 和 JQueryUI 一起使用,我收到以下错误:
Property 'draggable' does not exist on type 'JQuery<HTMLElement>'
我知道 .draggable()
是一个依赖于 JQueryUI 的函数,我已经使用以下命令在我的 node_modules 中安装了 JQuery 和 JQueryUI:
npm install --save jquery
npm install --save @types/jquery
npm install --save @types/jqueryui
我的 Webstorm IDE 可以突出显示并通过在函数上按 Ctrl+单击将我引导到正确的位置,但控制台显示我上面提到的错误。
我正在使用 import * as $ from 'jquery';
导入模块,我的代码是 $('#element').draggable({containment: '#containment-包装});
谁能帮我看看哪里出错了?
更新
感谢@LLai 给了我一个很好的解决问题的方向。 基本上,我必须在我的项目中安装 jqueryui 核心:
npm install --save-dev jqueryui
然后我必须像这样在 jquery
之后导入 jqueryui
:
import * as $ from 'jquery';
import 'jqueryui'
好吧,这给了我很多错误,但它看起来像是某些版本的 @types/jquery
的问题,所以我不得不遵循这个 issue在 Github 上,建议使用 npm install @types/jquery@2.0.47 --save-dev
安装特定版本的@types/jquery。
完成这些步骤后,一切正常!希望它能帮助其他人。
最佳答案
导入jquery
后还必须导入jqueryui
import * as $ from 'jquery';
import 'jqueryui';
draggable() 函数现在应该可用了。
关于jquery - 错误 : Property 'draggable' does not exist on type 'JQuery<HTMLElement>' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47229644/