作者│PiumiGunawardhana 译者│翟可 JavaScript是一种流行的脚本语言。自诞生以来,它一直是Web开发的主导语言。20年后,Microsoft推出了TypeScript,这是JavaScript的超集,专为开发大型Web应用程序而设计。 如果你对Typescript和JavaScript有所了解,你就会知道它们不会相互竞争。他们有着独特的关系,共同发展。让我们来分析一下它们的优缺点,以便您以后可以更好地为您的项目选择模型。 JavaScript是什么? JavaScript是世界上最流行的编程语言之一。 让我们从头开始。自90年代以来,JavaScript一直是Web应用程序的核心。它与HTML和CSS结合使用来创建交互式网页。它是一种具有动态类型和JIT(即时)编译器的高级语言。 JavaScript是一种多范式语言,支持函数式编程、命令式编程和事件驱动编程等多种编程风格。它还支持编写服务器端。JavaScript是在ECMAScript(ES)标准的基础上形成的。JavaScript中使用最广泛的ES标准是ES5和ES6。 什么是TypeScript? TypeScript(TS)是一个JavaScript超集,其目标与JavaScript相同。 TypeScript是一种开源编程语言,具有许多功能,如继承、类、可见范围、命名空间、接口、合并和其他现代功能以及静态和动态类型。它支持注释、变量、函数、语句、模块和表达式。 作为一种强类型的编程语言,TypeScript更容易调试(在编译期间),因此更适合复杂的应用程序。 为何使用TypeScript? JavaScript项目的复杂性呈指数增长。最初,JavaScript仅用作客户端语言。但开发人员慢慢意识到它也可以作为一种服务器端编程语言。 对于其所有优点,JavaScript在服务器端可能会变得混乱和复杂(尤其是对于大型应用程序)。同时,JavaScript会使大型复杂的应用程序难以维护。 浏览器的不断迭代和跨浏览器的兼容,也需要对JavaScript底层进行改动,但是继续修改JavaScript来解决这些并不实际。于是TypeScript应运而生。 JavaScript和TypeScript的主要区别 JavaScriptTypeScript支持动态网页内容JavaScript的解释语言超集,旨在帮助项目解决代码复杂性问题,因此错误只能在运行时发现,并且可以在编译期间检测到并修复错误弱类型,不能选择静态类型强类型,支持静态和动态类型可以直接在浏览器中使用将代码转换为JS以实现浏览器兼容性不支持模块、泛型和接口支持模块、泛型和接口接口不支持可选参数Optional可以将参数添加到函数中使用数字和字符串作为接口数字和字符串是对象大量社区支持,包括大量文档社区支持正在增长,不像以前那么强大不支持原型制作原型制作是一个可行的选择不需要事先的脚本知识学习和编码需要时间,需要脚本知识没有构建环境需要设置对于静态类型定义,需要正确的构建设置(npm包) TypeScript比JavaScript好吗? 根据我的描述,TypeScript似乎只是JS的一个更好的版本。所以你可能认为TS会在不久的将来取代JavaScript。不,我仍然相信JavaScript有一席之地。 复杂性是需要考虑的关键因素。 JavaScript非常适合更简单的应用程序,因为它可以在所有平台(跨平台)上运行并且非常轻量级。另外,编译TS代码所需的时间和CPU资源对于项目来说会比JS的最小开销更大。 TypeScript比JavaScript有很多好处。 TS使代码重构更容易,并更加强调显式类型,让开发人员掌握各种组件如何交互。由于它支持编译时调试,因此对于处理大型复杂应用程序的团队来说有一定的好处。 为任何项目设置TypeScript都很简单。一些框架,如Angular,默认使用TypeScript。因此,我认为TypeScript更胜一筹。 TypeScript的缺点 虽然TypeScript有很多优点,但也有一定的缺点。 需要准确定义类型,使用起来比较麻烦,但从长远来看,可以节省时间和资源。这是选择JavaScript的最常见原因。 您不能将大型JavaScript项目迁移到严格的TypeScript。虽然有工具可以提供帮助,但您仍然需要自己迁移大部分代码。 TypeScript代码编译需要时间和CPU资源,所以需要一段时间才能看到变化。与传统的JavaScript不同,LiveEncoding有点影响。在庞大的代码库上,这些工具也会显着减慢速度,从而导致导航等方面的严重延迟。 我什么时候应该将我的项目迁移到TypeScript? 当代码大小、复杂性和错误率增加,并且需要在编译期间识别特定问题时,使用TypeScript。 TypeScript还具有接口和访问修饰符,允许开发人员在单个代码库上进行协作和交互。因此,最好从项目一开始就使用TypeScript。 但是如果你喜欢Ember.js或者Glimmer.js这样的框架,那么你就不会喜欢TypeScript,这些框架的首选是JavaScript。 结论 由于TypeScript可转换为纯JavaScript代码,因此您可以将其用作JavaScript的替代品。这就是为什么它更容易接受。当然,我们也可以看到TS被集成到Angular、React和Vue.js等流行JS框架的核心构建块和库中。 就我个人而言,我是TypeScript的粉丝,通常会在新项目中推荐它。一开始多想一想,以后就不会头疼了。 希望本文能帮助您更好地理解这两种脚本语言之间的区别。至少,您已经更好地了解了TypeScript的真正含义。现在您可以为下一个项目做出更明智的选择。 译者介绍 翟柯,51CTO社区编辑,目前在杭州从事软件研发工作,从事电子商务、征信等系统工作。他享受分享知识的过程,丰富自己的生活。 原标题:还在假装知道JavaScript和Typescript的区别吗? https://thenextweb.com/news/differences-between-javascript-and-typescript
