相关文章推荐
帅气的洋葱  ·  VSCode报错 Unexpected ...·  1 月前    · 
欢乐的黄豆  ·  xml报文转map-掘金·  1 年前    · 
腼腆的土豆  ·  Delphi ...·  1 年前    · 
玩命的苦瓜  ·  用VBA生成PDF Adobe ...·  1 年前    · 
注册/登录

你真的知道 JavaScript 和 Typescript 之间的区别吗?

译文 精选
开发
根据我的描述,TypeScript似乎只是JS的一个更好的版本。所以你可能会认为TS会在不久的将来取代JavaScript。其实不然,我仍然相信JavaScript会有用武之地。

作者│Piumi Gunawardhana

译者│翟珂

JavaScript是深受大众喜欢的脚本语言。自从它诞生以来,它一直是网络开发的主导语言。20年后,微软推出了TypeScript,是JavaScript的超集,专为开发大型网络应用程序而设计。

如果你对Typescript和JavaScript有所了解,你就会知道它们不会相互竞争。它们有一种独特的关系,共同发展。让我们来分析一下它们的优缺点,以便将来你能够更好的为项目选型。

什么是JavaScript?

JavaScript是世界上最流行的编程语言之一。

让我们从头讲起。自90年代以来,JavaScript一直是网络应用的核心技术。它用来与HTML和CSS结合创建交互式网页。它是一种具有动态类型和JIT(Just-in-Time)编译器的高级语言。

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 之间的主要区别

JavaScript

TypeScript

支持动态网页内容

为帮助项目解决代码复杂性而创建的JavaScript超集

解释性语言, 因此只有在运行时才会发现错误

在编译期间可以检测和修复错误

弱类型,无法选择静态类型

强类型,支持静态和动态类型

可以直接在浏览器中使用

将代码转换为 JS 以实现浏览器兼容性

不支持模块、泛型和接口

支持模块、泛型和接口

不支持可选参数

可选参数可以添加到函数中

使用数字和字符串作为接口

数字和字符串是对象

大量社区支持,包括大量文档

社区支持正在增长,不像以前那么强大

不支持原型设计

原型设计是一个可行的选择

不需要事先的脚本知识

学习和编码需要时间,需要脚本知识

无需设置构建环境

对于静态类型定义,需要适当地构建设置(npm 包)

TypeScript 比 JavaScript 更好吗?

根据我的描述,TypeScript似乎只是JS的一个更好的版本。所以你可能会认为TS会在不久的将来取代JavaScript。其实不然,我仍然相信JavaScript会有用武之地。

复杂性是一个需要考虑的关键因素。

JavaScript 非常适合更简单的应用程序,因为它可以在所有平台(跨平台)上运行并且非常轻量级。另外,与JS的最小开销相比,编译TS代码需要的时间和CPU资源对项目而言会更麻烦。

与JavaScript相比,TypeScript有很多好处。

TS 使代码重构变得更加容易,并且更强调显式类型,使开发人员能够掌握各种组件的交互方式。由于它支持编译时调试,对于处理大型复杂应用程序的团队来说,有一定的好处。

为任何项目设置TypeScript都是容易的。一些框架,如Angular,默认使用TypeScript。因此,在我看来TypeScript更胜一筹。

TypeScript 的缺点

尽管TypeScript有许多优点,但它也有某些缺点。

需要准确的定义类型,在使用的时候是比较麻烦的,但从长远来看,可以节省时间和资源。这是选择JavaScript的最常用的理由。

你不可能把一个大型的JavaScript项目迁移到严格的TypeScript上。虽然有一些工具可以协助,但你还是需要自己迁移大部分的代码。

TypeScript代码编译需要时间和CPU资源,所以需要等待一会才能看到改变。与传统的JavaScript不同,实时编码会有一点影响。在海量代码库上,这些工具也会显着减慢,导致导航等显着延迟。

什么时候应该将项目迁移到TypeScript?

当代码的大小、复杂性和出错率增加时,需要在编译过程中确定具体问题时,就可以使用TypeScript。

TypeScript 还具有接口和访问修饰符,允许开发人员在单个代码库上进行协作和交互。因此,最好在项目一开始就使用TypeScript。

但是你如果喜欢像Ember.js或Glimmer.js这样的框架,那你就不会喜欢TypeScript,这些框架的首选是JavaScript。

结论

由于 TypeScript 转换为普通的 JavaScript 代码,因此你可以将其用作 JavaScript 的替代品。这就是为什么它更容易被接受。当然我们也能看到TS被集成到流行的JS框架的核心构建组件和库中,如Angular、React和Vue.js。

就个人而言,我是TypeScript的粉丝,通常建议新项目使用它。在开始的时候多花点心思,就省得以后头疼了。

我希望这篇文章能够帮助你更好地理解这两种脚本语言之间的差异。至少,你已经对TypeScript到底是什么有了更好的了解。现在你可以为你的下一个项目作出更明智的选择了。

译者介绍

翟珂,51CTO社区编辑,目前在杭州从事软件研发工作,做过电商、征信等方面的系统,享受分享知识的过程,充实自己的生活。

原文标题:Still pretending you know the differences between JavaScript and Typescript?

​  https://thenextweb.com/news/differences-between-javascript-and-typescript​

责任编辑:张洁
点赞
收藏