vite5+vue3+vant4+ts函数参数报错:TS7006: Parameter ‘data‘ implicitly has an ‘any‘ type.

报错信息:

TS7006: Parameter 'data' implicitly has an 'any' type.

报错截图: 

原因:

这句话翻译过来就是参数暗指是any类型

在TS中等同于以下代码:

const f = (param: any) => {    //无意义代码
   console.log(param);
 };

在TS中如果没有定义参数类型的话就会报这个信息。

这是属于是JS的编码风格,但在TS当中,你需要给它赋上类型。

 解决方案:

方案一:添加上具体的参数类型
//Parameter 'param' implicitly has an 'any' type.ts(7006)

 const f = (param) => {    //param类型可能为any
    console.log(param);
  };

*******解决方式(参考)*******

//假如param为字符串类型,可以这样做
 const f=(param: string)=>{
 	console.log(param);
 }


//假如param为数字类型,可以这样做
 const f=(param: number)=>{
 	let sum=param+100;   //sum没有声明类型,是因为TS的自动类型推断,param为数字类型,加上100,那么TS就会推出sum为数字类型。
 	console.log(sum);
 }


//假如param为XXX数组类型,可以这样做
 const f=(param: XXX[])=>{
 	param.forEach((e: XXX)=>{
 		console.log(e)
	})
 }
方案二(非常不提倡):
  • 在tsconfig.json(vite5+vue3+vant4+ts高版本中是tsconfig.app.json)当中使用 “noImplicitAny”: false 或者 “strict”: false
  • 或者使用tsc命令带上以上两个参数

使用这个意味着将TS的类型检测给屏蔽了,也就是说,你写的语法还是JS语法,与TS没什么关系(无意义的行为)

文档中对这两个参数的介绍: 

–noImplicitAny:在表达式和声明上有隐含的 any类型时报错。

–strict:启用所有严格类型检查选项。

TS是不鼓励使用any类型(除特殊情况),如果所有的变量,参数等都为any,那TS基本类型检查功能就等于没有使用到。

TypeScript的核心原则之一是对值所具有的结构进行类型检查。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DN金猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值