Typescript的理解

在这里插入图片描述

Typescript是Javascript的超集,它可以编译成纯Javascript。他可以运行在任何浏览器,任何计算机和任何操作系统上,并且是开源的。

01

Typescript由微软创建,近年来很火,作为一个“有追求”的web前端,多少会有些涉足ts,就算工作中没有用到ts的你也许会自己动手写一些小Demo吧。用惯了Javascript之后再去使用Typescript会感觉到很麻烦,严格的数据类型,严格的返回值类型,刚接触时一堆堆的爆红信息,多少会让人极度不适,心里会想:“你报个什么鸡儿错,js都不报错你怎么不一样呢!辣鸡!”

大前端的发展趋势让我们不得不去学习TS,Vue都进军TS版了,怎么能不学习呢。我是一个典型,从一开始的不屑于学习ts,自我感觉良好,认为js这么强大就已经足够让我在开发中使用了,慢慢的,项目变得越来越大,项目组人员变得越来越多,web人员的技术层次也参差不齐,开发的代码、框架虽有约束但只是整体上的,却挡不住个人的编码习惯不同,造成后期出现问题在修复问题的过程中让人摸不着头脑。好比下边这样:

function yonghu(a){
   var p = a.docName;
   var url = "/xxx/xxxxx";
   this.$post(url, p).then(r=>{
     this.u= r.data
   })
}

我的内心:yonghu?用户吧?a是啥啊?p是啥啊?哦p是参数,u又是啥啊?搜一下,卧槽全是u怎么搜啊,这代码简便的就连webpack打包的都没你简便!!

还有下边这种:

String name;
...
return name.toString();

让你维护项目看到这种代码,你骂人不?如果在js中出现类似问题,使用ts可以完美解决,不然tsc都看不惯你。

// js 返回一个字符串类型
function getString(){
  let string;
  string = 1;
  string = "1";
  string = [1];
  ......
  string = ["1"]; // 无线赋值
  return string; 
}
// ts
function getString(): string{
  let string: string;
  // 直接接给你报错 number类型是无法赋值给string类型的
  string = 1;  
  return string;
}

就像上述例子,js方法中返回数据是Array类型呢?如果正巧下方用到String类型的原型方法呢?是不是就爆红啦,如果前期调试没注意到,没有做类型校验,上线后出现这种情况会导致很严重的后果,而TS则在开发的过程中就已经强制性的让你解决问题。当然ts也不仅仅只有类型检查这么点功能,接口,类等高级用法也很强大。

02

任何语言都有利有弊,笔者认为最大的弊端为这两点:
1、开发的成本在相对于js来说要大些,毕竟严格的类型约束在开发过程中总是报错让人心烦意乱,对小白或者不太熟练的人来说是种挑战。但是一旦项目成型,开发起来会很轻松,也有利于维护。
2、与一些第三方库的接入还是不太完美,毕竟一些库的兼容性也不太好

TS,不是很完美,但是大潮流在推动着,作为自己工作内的一份技能不得不去学习尽管他暂时用不到,但是多学无妨,不管是否是开发人员,拓宽自己的视野、接受新知识一种享受是一种提升。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值