TypeScript类型体操1

TypeScript 这些年越来越火,逐渐在成为前端工程师的主流语言,为什么会出现这样的情况呢?本小节主要分析TypeScript爆火背后的原因。

第一个问题,类型是什么?

类型具体点来说就是指 number、boolean、string 等基础类型和 Object、Function 等复合类型:

  • 不同类型变量占据的内存大小不同:boolean 类型的变量会分配 4 个字节的内存,而 number 类型的变量则会分配 8 个字节的内存,给变量声明了不同的类型就代表了会占据不同的内存空间
  • 不同类型变量可做的操作不同:number 类型可以做加减乘除等运算,boolean 就不可以,复合类型中不同类型的对象可用的方法不同,比如 Date 和 RegExp,变量的类型不同代表可以对该变量做的操作就不同。

因此,类型必须要与所做的操作相匹配,这就是为什么要做类型检查的原因。类型检查是为了保证类型安全:

  • 类型安全:能保证某种类型只做该类型允许的操作,这就叫做类型安全。
  • 动态类型检查(js):类型检查在运行时做。 优点:在源码中不保留类型信息,写代码很灵活。 缺点:埋下了类型不安全的隐患,比如对 string 做了乘除,对 Date 对象调用了 exec 方法,这些都是运行时才能检查出来的错误
  • 静态类型检查(ts):类型检查在运行之前的编译期做。 优点:消除类型不安全的隐患,在编译期间做类型检查。 缺点:在源码中保留类型信息,写代码时需要考虑的问题更多一些。

针对上述两种类型检查方式可知:
动态类型只适合简单的场景,对于大项目却不太合适,因为代码中可能藏着的隐患太多了,万一线上报一个类型不匹配的错误,那可能就是大问题。
而静态类型虽然会增加写代码的成本,但是却能更好的保证代码的健壮性,减少 Bug 率。

因此,大型项目注定会使用静态类型语言开发。
TypeScript 给 JavaScript 添加了一套静态类型系统,从动态类型语言变成了静态类型语言,可以在编译期间做类型检查,提前发现一些类型安全问题。而且,因为代码中添加了静态类型,也就可以配合编辑器来实现更好的提示、重构等,这是额外的好处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值