JavaScript vs TypeScript哪家强?
译者 | 明明如月,责编 | 郭芮
转载 | **** 公众号
TypeScript (TS) 是微软开发的一种开源编程语言,可以编译成 JavaScript (JS) 代码。自 2012 年发布以来,这门语言一直保持活跃发展并且越发受欢迎。
在早期,开发社区就将 TypeScript 和 Angular 紧密联系在一起。尽管用 JS 也不是不行,但是 Angular 强迫你使用 TypeScript。
1
TypeScript 和 JavaScript 的区别是什么?
Typescript 是 JavaScript 的超集,可以被编译成 JavaScript 代码。用 JavaScript 编写的合法代码,在 TypeScript 中依然有效。Typescript 是纯面向对象的编程语言,包含类和接口的概念。程序员可以用它来编写面向对象的服务端或客户端程序,并将它们编译成 JavaScript 代码。
TypeScript和 JavaScript的关系,图源:GeeksforGeeks
TypeScript 引入了很多面向对象程序设计的特征,包括:
interfaces 接口
classes 类
enumerated types 枚举类型
generics 泛型
modules 模块
主要不同点如下:
TS 是一种面向对象编程语言,而 JS 是一种脚本语言(尽管 JS 是基于对象的)。
TS 支持可选参数, JS 则不支持该特性。
TS 支持静态类型,JS 不支持。
TS 支持接口,JS 不支持接口。
2
为什么要用 TypeScript ?
TS 在开发时就能给出编译错误, 而 JS 错误则需要在运行时才能暴露。
作为强类型语言,你可以明确知道数据的类型。代码可读性极强,几乎每个人都能理解。
TS 非常流行,被很多业界大佬使用。像 Asana、Circle CI 和 Slack 这些公司都在用 TS。
3
为什么不该用 TypeScript ?
TS 需要编译。TS 得通过编译才能变成 JS 代码。
随着时间的推移,类型可能变得非常复杂。当项目不断变大时这种情况十分常见。
尽管 TS 是类型安全的,在有些情况下编译器也有检查不出任何错误的情况。当我们修改编译后的 JS 代码时,错误就不可检测了。不过随着编译器不断改进,这种情况会越来越少。
4
摘要
JavaScript | TypeScript | |
---|---|---|
语言 | 脚本语言 | 面向对象编程语言 |
学习难度 | 灵活易学 | 需要有脚本编程经验 |
类型 | 轻量级解释编程语言 | 强类型的面向对象编程语言 |
客户端/服务端 | 客户端服务端都有 | 侧重客户端 |
拓展名 | .js | .ts 或 .tsx |
耗时 | 更快 | 编译代码需要些时间 |
数据绑定 | 没有类型和接口的概念 | 使用类型和接口表示数据 |
注解 | 不需要注解 | 使用注解才能最大限度发挥 TypeScript的特性 |
语法 | 所有的语句都写在脚本标签内。浏览器将脚本标签内的文本识别为脚本 | 一个 TypeScript 程序由模块、方法、变量、语句、表达式和注释构成。 |
静态类型 | JS 中没有静态类型的概念 | 支持静态类型 |
模块支持 | 不支持模块 | 支持模块 |
接口 | 没有接口 | 支持接口 |
可选参数方法 | 不支持 | 支持 |
原型 | 没有这种特性 | 支持原型特性 |
开发者社区 | JS 使用范围很广,被编程社区广泛接受和使用 | TS 比较新,编程社区相对较小 |
参考选择 | 小型项目 | TS 是一种面向对象语言,代码更简洁,可读性和复用性强。因此 TS 更适合大型项目。 |
表格来自:Edureka
5
结论
那问题来了:TypeScript 和 JavaScript 哪个更好?
由于 TS 的先天优势,TS 越来越受欢迎。但是请记住,TS 最终不可能取代 JS,因为 JS 是 TS 的核心。
选择 TypeScript 还是 JavaScript 要由开发者自己去做决定。如果你喜欢类型安全的语言,那么推荐你选择 TS。如果你已经用 JS 好久了,你可以选择走出舒适区学习 TS,也可以选择坚持自己的强项,继续使用 JS。
本文到此结束,希望你能有所收获,轻松快乐的学习。
原文:https://medium.com/javascript-in-plain-english/is-typescript-the-way-forward-659caa2cb10f
RECOMMEND
推荐阅读
01
JS入门,首选畅销二十年经典著作:犀牛书
《JavaScript权威指南(第6版)》
“本书是JavaScript程序员的必备参考……内容组织得很好,而且非常详细。”
--JavaScript之父Brendan Eich
推荐理由:从1996年以来,“犀牛书”已经成为JavaScript程序员心中公认的权威指南。本书凭借着完整的内容、细致的讲解以及海量针对性的示例而受到读者的一致好评,二十多年来印刷超过1000000册,畅销不衰。是JavaScript和前端开发领域不可多得的佳作。
这本厚达1010页的巨著主要讲述的内容涵盖JavaScript语言本身,以及Web浏览器所实现的JavaScriptAPI。对于那些希望学习Web编程语言的有经验的程序员和希望精通JavaScript的JS程序员,本书最适合不过了。本书不仅适合初学者系统学习,而且适合有经验的JavaScript开发者随手翻阅:初学者读完本书,将会对JS有全面的认识,快速掌握JS最核心的技术。而有经验的开发者读完本书,会让你对JS的理解有从量变到质变的深层次飞跃。
点击链接了解详情并购买
02
在游戏式开发中轻松掌握JS技术:老鹰书
《JavaScript编程精解(原书第3版)》
编程原理与运用规则的简练、完美融合。我喜欢游戏式的程序开发教程。本书再次点燃了我学习编程的热情。对了,是JavaScript!
——Brendan Eich,JavaScript之父
“这是一本好书,适合那些没有JavaScript经验,甚至没有编程经验的人阅读。”
——Nicholas Zakas,世界知名Web技术专家,撰写多部JS畅销书籍。
推荐理由:这本书由世界知名JS工程师撰写,JS之父BrendanEich及世界知名专家强力推荐,提纲挈领地介绍了JS语言的主要功能和特色,读者可以通过学习这些内容循序渐进地掌握基本的编程概念、技术和思想。为了读者能够较快地上手实际的项目,这本书还安排了5个实战章节,涉及路径查找、自制编程语言、平台交互游戏、绘图工具和动态网站等方面,这些章节教会你如何利用掌握的知识实现各种功能,并组成一个完整的项目。
《JavaScript编程精解》第3版包含了JavaScript语言ES6 规范的最新功能,比如绑定、常量、类、promise等。通过学习本书,你能了解该语言的最新发展,并编写出更强大的代码。相对于犀牛书是绝佳的的补充学习读本。
点击链接了解详情并购买
03
使用TypeScript 3.0和不同的JavaScript框架来开发高质量的应用程序
《TypeScript项目开发实战》
点击购买
推荐理由:本书是一本TypeScript进阶实践指南,通过9个实用项目,详细讲解如何使用TypeScript 3.0和不同的JavaScript框架开发高质量的应用程序。书中不仅介绍TypeScript的核心概念与技术,还涵盖Angular和React的一些新功能,以及GraphQL、微服务和机器学习等相关的新技术。学习完本书后,你将能够自信地使用TypeScript 3.0和不同的JavaScript框架来开发高质量的应用程序。
更多精彩回顾
上新 | 三个男人一台戏,为云原生应用和OpenShift写了一本书
书单 | 《天才引导的历程》| 西安交通大学送给准大一新生的礼物
收藏 | 揭秘阿里巴巴的客群画像