JavaScript 败北,TypeScript 大势所趋?

2022-01-20 18:06:06 浏览数 (1)

来自: CSDN 译者:明明如月 责编:郭芮 https://medium.com/javascript-in-plain-english/is-typescript-the-way-forward-659caa2cb10f

由于TypeScript的先天优势,TypeScript越来越受欢迎。那问题来了:TypeScript 和 JavaScript 究竟哪个更好?JavaScript真的会败北吗?

以下为译文:

你以前可能曾听说过“TypeScript”这个词。到现在 2019年,TypeScript 在 GitHub 最常用编程语言排行榜排名第 7 位,在增速最快的编程语言排行榜中占第 5 位。

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 更适合大型项目。

5. 结论

那问题来了:TypeScript 和 JavaScript 哪个更好?

由于 TS 的先天优势,TS 越来越受欢迎。但是请记住,TS 最终不可能取代 JS,因为 JS 是 TS 的核心。

选择 TypeScript 还是 JavaScript 要由开发者自己去做决定。如果你喜欢类型安全的语言,那么推荐你选择 TS。 如果你已经用 JS 好久了,你可以选择走出舒适区学习 TS,也可以选择坚持自己的强项,继续使用 JS。

0 人点赞