当前位置: 首页 > Web前端 > HTML5

TypeScript(五)——类型知识补充

时间:2023-04-05 23:12:08 HTML5

目录隐式类型推断类型断言方法一:as关键字方法二:尖括号断言类型声明(declare)声明步骤使用第三方库lodash使用第三方库query-stringTypeScript在学习地图之前,我讲了语法。我觉得这些属于语法,但它们不是特殊类型。一时间不知道怎么分类,就把它们当成类型来补充知识。Implicittypeinference隐式类型推断:如果我们不通过类型注解明确标明这个变量的类型,那么TypeScript可以根据一些推断出这个类型。下面的例子:如果我们不设置类型,赋值一个数字,那么会推断这是一个数字类型,然后赋值一个字符串,就会报类型错误。如果TypeScript无法推断出这个变量的类型,它会被设置为any,之后可以赋值为any类型。开发时,还是建议大家为每个变量添加明确的类型,以便后面更直观的理解代码。类型断言TypeScript有时无法推断出某些变量的类型,但我们可以清楚地知道它,所以有时它会给我们一些不确定的选项,我们可以断言它是某种类型。使用类型断言可以帮助ts明确每个变量的类型。TypeScript类型断言不是类型转换。类型转换在运行阶段,断言在编译阶段。编译后断言不存在。例如:constnums=[110,120,119,112]//下面返回的res,ts认为可能是数字,也可能是undefinedconstres=nums.find(i=>i>0)//如果下面如果要对res进行操作,直接操作res会报错。constsquare=res*res//如果报错,必须断言是数字类型。方法一:使用as关键字明确num1是一个数字。使用数值运算constnum1=resasnumber方法二:尖括号断言尖括号与jsx标签冲突。那样的话,不推荐使用constnum2=res类型声明(declare),我们在开发的时候会用到第三方模块,这些模块并不是全部用typeScript写的,所以它的成员可能没有一个强大的打字体验。声明步骤如果有匹配typescript的类型声明,可以直接使用。如果没有,只能手动声明类型(declare)。可以在社区的npm直接下载正确的类型声明模块。之所以安装使用是为了兼容普通的js模块。使用第三方库lodash以使用lodash为例。lodash本身没有集成类型声明,所以在使用的时候会报错。下面的函数我们可以自己手动声明,直接调用没有类型提示的camelCase,所以在前面加上declare来限制函数camelCase的参数和返回值,这样可以看出这个函数是有类型提示的.上面的lodash还是报错,那么我们可能需要下载一些东西来兼容,因为TS社区比较强大,大部分第三方模块都有对应的类型声明,直接安装对应的类型声明模块(一般是@types/module名称)是的。类型声明是开发依赖,里面不会提供代码。它只是为模块做一个相应的类型声明。安装#yarnyarnadd@types/lodash--dev#npmnpmi@types/lodash安装后lodash可以看到有很多.d.ts类型声明文件,在对应的代码里面有对应的类型声明文件,说明使用第三方库query-stringquery-string——解析查询中的url字符串。类型声明文件集成在包本身中,不需要额外重新安装。#yarnyarnaddquery-string#使用npmnpmiquery-string时,可以看类型声明TypeScript学习图的介绍