为什么要使用TypeScript?TypeScript和js区别在何处?

二者的主要区别为:TypeScript是静态类型,js是动态类型(详见强类型、弱类型、静态类型、动态类型的区别)。

但这不意味着两者差距多大,只是类型检查的时机不同而已,TS和js根本上的差别就这一点,然而其意义却举足轻重。

静态类型检查可以做到early fail,即你编写的代码即使没有被执行到,一旦你编写代码时发生类型不匹配,语言在编译阶段(解释执行也一样,可以在运行前)即可发现,同时IDE也能提供大量便捷支持。对小型项目而言也许发挥不出多大优势,然而当项目规模膨胀,运行前的类型检查就大放异彩了——首先,大型项目测试调试分支覆盖困难,很多代码并不一定能够在所有条件下执行到,运行前的类型检查是减少bug的一大手段;其次,静态类型对阅读代码是友好的,在团队合作、代码维护和交接中意义不言自明;最后,IDE提供的大量便捷支持和TS本身的语法检查和代码提示自动补全让开发者提高效率,方便重构(维护过大型web项目中各种乱七八糟的js文件就能发现静态类型多美好)。

当然,TypeScript 只是为 JavaScript 中本身就存在的使用方式提供了对应的类型标注,所有在 TypeScript 中能够使用的开发模式,在 JavaScript 中一定是本身就存在的。

你可能感兴趣的:(Typescript学习)