TypeScript+Vue.js前端开发从入门到精通
上QQ阅读APP看书,第一时间看更新

1.4.3 从JavaScript到TypeScript

前面讲过,TypeScript是JavaScript的一种超集。所谓超集,是指TypeScript本身就包含JavaScript的所有功能,所有JavaScript的语法在TypeScript中依然适用。TypeScript是对JavaScript功能的一种增强。

在互联网时代初期,互联网应用大多非常简单,更多的是提供信息供用户阅读,可进行的用户交互并不多,此时的应用使用JavaScript语言来开发非常简单方便,JavaScript提供的功能也绰绰有余。随着互联网时代的发展,互联网应用的规模也越来越庞大,应用涉及的页面逐渐增多,用户交互逐渐复杂,这时JavaScript本身的灵活性反倒为开发者带来困扰,过度灵活会导致程序中的错误不易排查、模块化能力弱、重构困难等问题。TypeScript被发明的目的就是解决JavaScript的这些问题,它更适用于大型项目的开发。

关于TypeScript的用法,后面章节会详细介绍。本节简单对比一下TypeScript与JavaScript的主要区别。

(1)TypeScript提供了更多面向对象编程的特性。JavaScript本身也是面向对象语言,JavaScript的面向对象是基于原型实现的,本身并没有“类”和“接口”这类概念。总体来说,JavaScript的面向对象功能较弱,项目越大,其劣势就越明显。TypeScript中增加了类、模块、接口等功能,增强了JavaScript的面向对象能力。

(2)TypeScript为JavaScript提供了静态类型功能。JavaScript中的变量没有明确的类型,TypeScript则要求变量要有明确的类型。静态类型对于大型项目来说非常重要,很多编码错误在编译时即可通过静态检查发现。同时,TypeScript还提供了泛型、枚举、类型推论等高级功能。

(3)函数相关功能的增强。TypeScript中为函数提供了默认参数值,引入了装饰器、迭代器和生成器的语法特性,这些特性增强了编程语言的可用性,用更少的代码可以实现更复杂的功能。

对于TypeScript,你可能还有一点疑惑,大部分浏览器的引擎只支持JavaScript的语法,那么如何保证TypeScript编写的项目可以在所有主流浏览器上运行呢?这就需要通过编译器进行编译,编译器的作用是将TypeScript编译成通用的JavaScript代码,以保证在各种环境下的兼容性。

最后,对于为什么要使用TypeScript而不是JavaScript。这其实是分场景而言的,对于大型项目来说,不论从开发效率上、可维护性上还是代码质量上,TypeScript都具有明显的优势,是前端开发语言的未来与方向。