+-
一切能被 JavaScript 重写的项目终将被 TypeScript 重写?

微软“亲儿子”,可编译成 JavaScript 代码,VSCode 用它写的,Angular 用它重构了代码,Vue 用它重构了代码......


被这么多光环围绕?这就是被吹爆的 TypeScript,据说用了就上瘾!


但它真的有那么香么?TypeScript这么火,究竟解决了哪些问题?



  • 调用一个别人写的函数,很不幸,这段代码没有任何注释,为了搞清楚参数类型,你只能硬着头皮去看里面的逻辑。

  • 维护一个重要的底层类库,你殚精竭虑,优化了一个参数类型,但不知道有多少处引用,在提交代码前,是否感到脊背发凉?


  • 明明定义好了接口,可一联调就报错了——“TypeError: Cannot read property 'length' of undefined”,于是你怒气冲冲地去找后端理论:“嘿,哥们儿!这个字段是数组!这个字段是数组!这个字段是数组!”


  • 你是不是经历过这些体验?其“罪魁祸首”,源于 JavaScript 是一门弱类型语言。它不会要求你声明变量时指定类型,代码量一大就连开发者自己都搞不清这些变量到底是什么,非常容易出错。


    比如一个函数 caller 和 callee 分别由不同团队的不同人编写时,弱类型的 JavaScript 完全靠精确的文档提供契约,而强类型的 TypeScript 可以靠接口提供契约,变量名和类型就是完美的自解释文档,想违反契约都难。

    强类型的 TypeScript 统一了代码规范,而非仅仅是口头约定。同时根据 TypeScript 强类型而进行的静态类型分析能为 IDE/编辑器提供非常准确的智能提示,时刻感知可能存在的 Bug。


    接下来,我们一起来看一下TypeScript 究竟还有哪些特性使得它成为”刚需“?


  • 类型检查:TypeScript 会在编译代码时进行严格的静态类型检查,这意味着你可以在编码阶段发现可能存在的隐患,而不必把它们带到线上。

  • 语言扩展:TypeScript 会包括来自 ES 6 和未来提案中的特性,比如异步操作和装饰器;也会从其他语言借鉴某些特性,比如接口和抽象类。

  • 工具属性:TypeScript 能够编译成标准的 JavaScript,可以在任何浏览器、操作系统上运行,无需任何运行时的额外开销。从这个角度上讲,TypeScript 更像是一个工具,而不是一门独立的语言。

  • 当然如果是以下这两种情况可以不用TypeScript:


    1、项目足够小,生命周期短

    2、适应了替代品,比如Flow


    那么,前端工程师们如何才能更好的学习TypeScript,实现 JavaScript 项目转向 TypeScript?特别是没有时间去认真仔细的去一遍遍翻阅文档,毕竟有可能开发时因为一个极小的问题不在你知识点范围内,也会耗费你大量的时间来解决。

    找一门简单明了的教程进行快速学习入门显得很有必要,也许你可以来试试《TypeScript从入门到实践 【2021 版】》,帮助你更快入门与实践 TypeScript。

    课程简介

    本课程从细节抽丝剥茧,以不断发现问题,解决问题的思路带领学员逐步深入学习 TypeScript。课程主要知识点:


    理论基础:类型基础知识、强弱类型的区别,以及通过正确运用静态类型检查和动态类型检查来提升代码的正确性和健壮性。TypeScript 的主要语法,包括基本类型、函数、接口、类、泛型等类型相关的语法声明和实际应用,以及模块化的开发方式。


    开发示例:通过短小易懂的示例演示如何应用 TypeScript 语法的同时,介绍相关语法的应用场景和在设计模式中的应用。


    项目实战:前端以 Vue 为例,后端在 Koa 为例,通过一个小型应用展示 TypeScript 在项目中的实际应用,为最佳开发实践提供有效参考。

      
      

    戳原文链接一起开启TS之旅吧~