TS2339:“JQuery<HTMLElement>”类型上不存在属性“selectpicker”

Posted

技术标签:

【中文标题】TS2339:“JQuery<HTMLElement>”类型上不存在属性“selectpicker”【英文标题】:TS2339: Property 'selectpicker' does not exist on type 'JQuery<HTMLElement>' 【发布时间】:2018-06-21 07:08:36 【问题描述】:

我正在使用bootstrap-select

我已经成功地将bootstrap-select 导入到我的项目中,使用:

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.4/css/bootstrap-select.min.css">

<!-- Latest compiled and minified javascript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.4/js/bootstrap-select.min.js"></script>

<!-- (Optional) Latest compiled and minified JavaScript translation files -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.4/js/i18n/defaults-*.min.js"></script>

在文档&lt;head&gt; 标签内。我想看看如何修改多个选择框中的复选标记,并想我会尝试使用

$('.selectpicker').selectpicker('deselectAll');

方法如图here。每当我尝试使用那段代码时,都会收到错误消息:

TS2339: Property 'selectpicker' does not exist on type 'JQuery<htmlElement>'.

我什至尝试使用安装类型定义

npm install --save-dev @types/bootstrap-select

但问题仍然存在。我正在使用 Visual Studio SPA 模板,它使用 ASP.NET Core 模板、Vue.js 和 Webpack。

【问题讨论】:

【参考方案1】:

我记得处理过同样的错误。现在尝试重现完全相同的错误,我发现它只有在我按照此答案中的步骤操作后才会出现:https://***.com/a/41168903

我的解决方案,在我的导入语句下方添加这一行:

declare var $: any;

对于上下文,这在我的 Angular 项目中对我来说效果很好。我对 Vue.js 不太熟悉,但如果它适用,我认为将您需要的所有引导选择 jQuery 代码包装在一个单元中是个好主意(在我的情况下,我将它们全部包装在一个指令中)。

它也可以在不需要安装任何类型的情况下工作(我没有@types/jquery 或@types/bootstrap-select)

【讨论】:

以上是关于TS2339:“JQuery<HTMLElement>”类型上不存在属性“selectpicker”的主要内容,如果未能解决你的问题,请参考以下文章

TS2339:类型上不存在属性“帖子”

错误 TS2339:属性“_componentTag”不存在

错误 TS2339:类型“”上不存在属性“contenido”

试图通过 suppressExcessPropertyErrors 编译器选项来抑制 TS2339

错误 TS2339:“主页”类型上不存在属性“路由器”

TS2339:“家”类型上不存在属性“道具”