TypeScript-起步——JavaScript简介(三)

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情

⑤ 类型思维的缺失

  1. 我们已经简单体会到没有类型检查带来的一些问题,JavaScript因为从设计之初就没有考虑类型的约束问题,所以造成了前端开发人员关于类型思维的缺失:

    • 前端开发人员通常不关心变量或者参数是什么类型的,如果在必须确定类型时,我们往往需要使用各种判断验证;
    • 从其他方向转到前端的人员,也会因为没有类型约束,而总是担心自己的代码不安全,不够健壮;
  2. 所以我们经常会说JavaScript不适合开发大型项目,因为当项目一旦庞大起来,这种宽松的类型约束会带来非常多的安全隐患,多人员开发它们之间也没有良好的类型契约。

    • 比如当我们去实现一个核心类库时,如果没有类型约束,那么需要对别人传入的参数进行各种验证来保证我们代码的健壮性;
    • 比如我们去调用别人的函数,对方没有对函数进行任何的注释,我们只能去看里面的逻辑来理解这个函数需要传入什么参数,返回值是什么类型;

⑥ JavaScript添加类型约束

  1. 为了弥补JavaScript类型约束上的缺陷,增加类型约束,很多公司推出了自己的方案:

    • 2014年,Facebook推出了flow来对JavaScript进行类型检查;
    • 同年,Microsoft微软也推出了TypeScript1.0版本;
    • 他们都致力于为JavaScript提供类型检查;
  2. 而现在,无疑TypeScript已经完全胜出:

    • Vue2.x的时候采用的就是flow来做类型检查;
    • Vue3.x已经全线转向TypeScript,98.3%使用TypeScript进行了重构;
    • 而Angular在很早期就使用TypeScript进行了项目重构并且需要使用TypeScript来进行开发;
    • 而甚至Facebook公司一些自己的产品也在使用TypeScript;
  3. 学习TypeScript不仅仅可以为我们的代码增加类型约束,而且可以培养我们前端程序员具备类型思维。

猜你喜欢

转载自juejin.im/post/7130742833304043556