Vue使用ts typescript,使用Jquery报错 , $ 不认识的解决办法

本文介绍在Vue CLI 3.0脚手架的TypeScript项目中,如何正确引入并使用jQuery,避免ts编译器关于'$'未定义的错误提示。通过在shims-tsx.d.ts文件或组件内声明全局变量$,使项目能够顺利编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vue-cli 3.0 脚手架搭建的 vue项目,使用 typescript编写。期间遇见了不少坑。
由于项目需要用到第三方密码键盘插件和加密插件,须在index.html 页面顶部 引入jquery JS.

<script src="./jquery-2.1.4.js"></script>
当组件使用 $('#div').click() 方法的时,ts 编译器提示 一个错误,错误如下:
Cannot find name '$'. Do you need to install type definitions for jQuery? Try `npm i @types/jquery`.

$报错
但是我们已经在首页引入了,不需要再次cnpm 安装了。
这时候我们需要在 src 目录下 shims-tsx.d.ts 文件中声明一下,使用 declare
声明一下。或者在使用Jquery语法的组件里 declare var $: any; 声明一下 $ 为外部的变量,这样 ts 解析器就能正常编译 ts文件了。
方式一:

declare global {
	var $: any;
	....
}

方式二:(建议)

<script lang="tsx" type="text/tsx">
	import { Vue } from 'vue-property-decorator';
	declare  var $: any;
	export default class AddCardNum extends Vue { }
</script>

相关 tsx 模块注入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值