TS报错:Parameter 'xxx' implicitly has an 'any' type的解决方式

 更新时间:2022年10月29日 13:35:51   作者:GHTlinyu  
这篇文章主要给大家介绍了关于TS报错:Parameter 'xxx' implicitly has an 'any' type的解决方式,文中将产生错误的原因及解决方法都介绍的非常详细,需要的朋友可以参考下

Parameter ‘xxx’ 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当中使用 “noImplicitAny”: false 或者 “strict”: false
  • 或者使用tsc命令带上以上两个参数

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

参考文档中这两个字段的解释:

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

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

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

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

实例:

//原生js语法
function f(param){
	let stringList=param.split("-");
	console.log(stringList)
}
f("g-s-e-g-s"); //正常调用
f(23324);       //非正常调用

//js中这两个都是没有错,但在运行时,就会error
//然而在TS中这会被检测出来,所以定义any类型和使用原生js的语法变化不大

如何来解决(想法):

根据参数类型对其进行特定的声明。

实例( 仅参考 ):

param是字符串数组类型:

const displayList = (param: string[]) => { 
    param.forEach((element: string) => {
      console.log(element);
    });
  };

  displayList(['Hello', 'World', '!']);
   /**
   * 输出:
   * Hello
   * World
   * ! 
   */

param是自定义personType的类型:

type personType = {    //自定义类型
    name: string;
    age: number;
    gender: string;
  };

  const displayPersonName = (param: personType) => {
    console.log('姓名:', param.name);
  };
  
  //参数
  let person_1: personType = {
    name: 'personName01',
    age: 21,
    gender: '男',
  };
  let person_2: personType = {
    name: 'personName02',
    age: 22,
    gender: '女',
  };
 //调用
  displayPersonName(person_1);
  displayPersonName(person_2);
  
  /**
   * 输出:
   * 姓名: personName01
   * 姓名: personName02
   */

总结

到此这篇关于TS报错:Parameter 'xxx' implicitly has an 'any' type解决的文章就介绍到这了,更多相关Parameter 'xxx' implicitly has an 'any' type内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Javascript如何通过async/await优雅地使用FileReader

    详解Javascript如何通过async/await优雅地使用FileReader

    这篇文章主要为大家详细介绍了Javascript和Typescript如何通过async/await优雅地使用FileReader,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • JS中innerHTML和pasteHTML的区别实例分析

    JS中innerHTML和pasteHTML的区别实例分析

    这篇文章主要介绍了JS中innerHTML和pasteHTML的区别,结合实例形式较为详细的分析了innerHTML和pasteHTML的具体功能与使用区别,需要的朋友可以参考下
    2016-06-06
  • 前端echarts加标记点及标记线和提示框详细代码示例

    前端echarts加标记点及标记线和提示框详细代码示例

    ECharts中的标记线是一条平行于x轴的水平线,有最大值、最小值、平均值等数据的标记线,它也是在series字段下进行配置的,下面这篇文章主要给大家介绍了关于前端echarts加标记点及标记线和提示框的相关资料,需要的朋友可以参考下
    2024-06-06
  • Javascript 中的 call 和 apply使用介绍

    Javascript 中的 call 和 apply使用介绍

    JavaScript 中通过call或者apply用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象
    2012-02-02
  • layui框架table 数据表格的方法级渲染详解

    layui框架table 数据表格的方法级渲染详解

    今天小编就为大家分享一篇layui框架table 数据表格的方法级渲染详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • 基于Cesium绘制抛物弧线

    基于Cesium绘制抛物弧线

    这篇文章主要为大家详细介绍了基于Cesium绘制抛物弧线,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • JavaScript中split()方法举例详解

    JavaScript中split()方法举例详解

    这篇文章主要给大家介绍了关于JavaScript中split()方法的相关资料,split()方法在js处理字符串是很常见,也是很重要的一种方法必须熟练掌握,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • 改变layer confirm弹窗按钮的颜色方法

    改变layer confirm弹窗按钮的颜色方法

    今天小编就为大家分享一篇改变layer confirm弹窗按钮的颜色方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • 面包屑导航详解

    面包屑导航详解

    本篇文章我们从面包屑导航的样式,面包屑导航的代码等方面详细给大家分析了它的作用和设计技巧,如果你有这方便的需要,学习参考下吧。
    2017-12-12
  • javascript中一些util方法汇总

    javascript中一些util方法汇总

    Util.js文件包含了一些工具函数,来帮助人们使用JavaScript数据(例如从服务器返回的数据)来更新Web页面。有需要的小伙伴可以参考下
    2015-06-06

最新评论