jquery - 错误 : Property 'draggable' does not exist on type 'JQuery<HTMLElement>'

标签 jquery angular typescript jquery-ui types

通过将 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/

相关文章:

javascript - Typeahead 不适用于 Bootstrap 3

javascript - 使用 jQuery draggable 将元素拖到可滚动的 div 之外

javascript - 单击 css 内容属性

html - Angular - 添加类的 CSS 属性未显示

angular - 无法在 angular-cli 项目中使用 npm 包含 Bootstrap

具有http服务 promise 的Angular 2更新组件变量

jquery - 有没有办法将变量从 beforeSend 传递到 jQuery .ajax 函数中的 success 函数?

filter - 在 Angular 2 中,如何将数字显示为两位小数的四舍五入货币?

angular - DatePicker 更改自定义标题中的 View

typescript - 'an array of pairs of values of the same type' 类型可以用 TypeScript 表达吗?