Typescript、Angular CLI、NPM、VS 代码:类型“jQueryStatic”上不存在属性

2024-03-15

Scenario

我在用Angular, 角度 CLI, NPM and 打字稿在我的单页应用程序中。

在我的一个组件中,我需要使用jQuery初始化一个jQuery插入。就我而言,该插件是后伸 http://www.jquery-backstretch.com/,但这并不是那么重要,因为下面描述的问题对于任何 jQuery 插件都是相同的。

是的,我知道你们中的一些人会说,Angular 和 jQuery 结合在一起——不是最好的主意。但事实上,可重用的 jQuery 插件在 Angular 应用程序中仍然非常有用。

Problem

尽管在 VS Code IDE 中编写代码时,IntelliSense 下拉列表正确显示了 jQuery 和 backstretch 的属性,并且似乎没有任何错误,但在运行“ngserve”时确实出现了问题,因此当 TypeScript编译成 JavaScript。

我在控制台中得到的错误是:

错误于 C:/wamp/www/PaperbackComingSoon/Angular/my-app/src/app/app.component.ts (20,7): 类型上不存在属性“backstretch” 'JQueryStatic'。

在下面的屏幕截图中,您可以看到此错误,还可以看到 jsconfig.json 文件以及 jQuery 和 Backstretch 的已安装类型定义。

虽然编译器似乎可以找到 jQuery,但由于某些奇怪的原因,它在查找 backstretch 时遇到了问题。下面您可以看到 backstretch 的实际类型定义。

问题

我缺少什么?有谁知道这里可能出了什么问题吗?我的 Backstretch 插件的类型定义文件是否可能不是实际 jQuery Backstretch 插件的正确版本?

因为我当然使用 TypeScript,所以我希望所有具有可用于我的类型的类型文件的 jQuery 插件都是强类型的。如果我确实可以使用某个 jQuery 插件的类型,我认为没有理由不使用此功能。我知道我可以通过自己定义类型并制作“any”类型的所有 jQuery 插件来轻松解决我的编译问题,但这不是我想要的,而且看起来也不正确。我想利用我可以使用的任何打字文件。我看不出有什么理由不这样做,只是因为编译器似乎没有找到定义的属性。


可能的原因

我最好的选择是,这与我的系统上全局安装的 TS 版本与 VS Code IDE 中的 typescript 的差异有关,因为在 IDE 右下角的状态栏中检查 VSCode 中的 TS 版本时显示2.4.2.

但是如果我在控制台中运行“tsc -v”,它会给我1.0.3.0(请注意,我之前一直在 Visual Studio 中使用 TS)。但即使我运行“npm install -g[电子邮件受保护] /cdn-cgi/l/email-protection,这不会改变任何东西。

有什么想法吗?


更新NPM

npm install npm@latest -g

更新打字稿

npm -g upgrade typescript

or

npm install typescript@latest -g
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Typescript、Angular CLI、NPM、VS 代码:类型“jQueryStatic”上不存在属性 的相关文章

随机推荐