网页游戏广告平台网站建设,wordpress菜单和目录,没有企业邮箱怎么认证,做外贸要访问国外的网站怎么办文章目录 前言any类型条件判断进行使用断言加注释跳过ts检查 前言
typescript 的使用#xff0c;虽然让代码更加规范#xff0c;利于维护#xff0c;但也给开发带来很多麻烦。为了跳过很多ts的类型检查#xff0c;大家也是费尽心思#xff0c;下面就介绍一些常用的方式虽然让代码更加规范利于维护但也给开发带来很多麻烦。为了跳过很多ts的类型检查大家也是费尽心思下面就介绍一些常用的方式但并不是每一个都推荐使用。
any类型
将声明的变量改为any类型这样就可以不受ts的类型约束想怎么使用就怎么使用。
let any1: any 1
any1 dx
any1 false// 你也可以把any类型的数据赋值给其它变量都不会有问题
let name: string dengxi
name any1// 你也可以读取或者调用any类型的任意属性和方法
any1.change(); // 很明显代码运行后js会报错any1现在是一个数组类型并没有change方法可以被调用。但es不会检验出它的错误,因为any类型就相当于放弃了ts的规则校验很多人最常用的解决ts判断类型的麻烦就是使用any类型但使用了any类型之后就等同于放弃了ts并不是特别推荐。
而且有的时候你使用的数据类型并不是自己声明的可能是别人已经构造好的数据你不能把别人构造好的数据类型改为any类型吧。
条件判断进行使用
let name: unknown
let age: number
// age name // 这样ts肯定是不允许赋值的不能把一个未知的类型赋值给number类型。// 但我们可以优先判断一下如果name是number再赋值
if(typeof name number) {age name
}虽然举的例子很简单但条件判断后再调用也是常用的一种方式尤其是调用某个方法前先判单它是否是一个函数这样js既不会报错ts也不会报错。
let name: unknown
if(typeof name function) {name()
}断言
let name: unknown
let age: number// 通过断言的方式告诉ts name就是number类型让ts不要检查name
age name as number// 另外一种断言的写法
age numbername// 我们想调用 number的toFixed方法保留一位小数
// name.toFixed(1) // 这种写法肯定会报错 unknown 类型没有 toFixed方法
// 这种断言用小括号括起来再调用方法就没啥问题了
(name as number).toFixed(1) 展示了三种不同的断言写法。虽然写法不同但都是通过断言来让ts对这个数据类型放水不要检查就当作它是一个xxx类型。
加注释跳过ts检查
单行忽略 通过给某一行代码加上 备注ts-ignore让这一行代码不受类型检查。
// ts-ignore
let a: string 0跳过对整个ts文件的检查
但必须将注释 ts-nocheck 添加到该文件的首行才行
// ts-nochecklet a: string 0
let b: number dxb.change()
很明显上面的代码在ts里面都有问题但加了ts-nocheck 以后整个ts文件都不会被ts类型检查约束。这可能会产生新的问题比如b.change() 在执行时必定会报错。所以一般不推荐使用ts-nocheck。