不二如是 发表于 2020-1-3 17:36:46

0 2 4 2 ★ TypeScript 一统天下,JavaScript 败北??

本帖最后由 不二如是 于 2020-1-25 21:19 编辑

上一篇:0 2 4 1★ How JavaScript Grew Up and Became ...

static/image/hrline/2.gif

开始前吹个水,小师妹的彩蛋看了嘛{:10_307:}

没看的,丢个:传送门

鱼油可能以前听过 TypeScript 这个词(后简写为 TS)。

到目前为止 TS 在 Github 常用编程榜拍第 7 名,最快增长榜排第 5 名。

先来一段 Wiki 定义:

TypeScript 是一种由微软开发的自由和开源的编程语言。

它是 JavaScript 的一个严格超集,并添加了可选的静态类型和使用看起来像基于类的面向对象编程语法操作 Prototype。
简单说就是,TypeScript (TS) 是微软开发的一种开源编程语言,可以编译成 JavaScript (JS) 代码。

自 2012 年发布以来,这门语言一直保持活跃发展并且越发受欢迎。

在早期,开发社区就将 TypeScript 和 Angular 紧密联系在一起。

尽管用 JS 也不是不行,但是 Angular 强迫你使用 TypeScript。


JS 和 TS 有何区别??

Typescript 是 JavaScript 的超集,可以被编译成 JavaScript 代码。

用 JavaScript 编写的合法代码,在 TypeScript 中依然有效。

Typescript 是纯面向对象的编程语言,包含类和接口的概念。

程序员可以用它来编写面向对象的服务端或客户端程序,并将它们编译成 JavaScript 代码。

TypeScript 引入了很多面向对象程序设计的特征,包括:


[*]interfaces接口
[*]classes类
[*]enumerated types 枚举类型
[*]generics 泛型
[*]modules 模块

主要不同点如下:


[*]TS 是一种面向对象编程语言,而 JS 是一种脚本语言(尽管 JS 是基于对象的)
[*]TS 支持可选参数, JS 则不支持该特性
[*]TS 支持静态类型,JS 不支持
[*]TS 支持接口,JS 不支持接口


为什么要用 TypeScript ?

TS 在开发时就能给出编译错误, 而 JS 错误则需要在运行时才能暴露。

作为强类型语言,你可以明确知道数据的类型。

代码可读性极强,几乎每个人都能理解。

TS 非常流行,被很多业界大佬使用。

像 Asana、Circle CI 和 Slack 这些公司都在用 TS。


为什么不该用 TypeScript ?

TS 需要编译。

TS 得通过编译才能变成 JS 代码。

随着时间的推移,类型可能变得非常复杂。

当项目不断变大时这种情况十分常见。

尽管 TS 是类型安全的,在有些情况下编译器也有检查不出任何错误的情况。

当我们修改编译后的 JS 代码时,错误就不可检测了。

不过随着编译器不断改进,这种情况会越来越少。


摘要


JavaScript TypeScript
语言 脚本语言 面向对象编程语言
学习难度 灵活易学 需要有脚本编程经验
类型 轻量级解释编程语言 强类型的面向对象编程语言
客户端/服务端 客户端服务端都有 侧重客户端
拓展名 .js .ts 或 .tsx
耗时 更快 编译代码需要些时间
数据绑定 没有类型和接口的概念 使用类型和接口表示数据
注解 不需要注解 使用注解才能最大限度发挥 TypeScript的特性
语法 所有的语句都写在脚本标签内。浏览器将脚本标签内的文本识别为脚本 一个 TypeScript 程序由模块、方法、变量、语句、表达式和注释构成
静态类型 JS 中没有静态类型的概念 支持静态类型
模块支持 不支持模块 支持模块
接口没有接口 支持接口
可选参数方法 不支持 支持
原型 没有这种特性 支持原型特性
开发者社区 JS 使用范围很广,被编程社区广泛接受和使用 TS 比较新,编程社区相对较小
参考选择 小型项目 TS 是一种面向对象语言,代码更简洁,可读性和复用性强。因此 TS 更适合大型项目



结论

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

由于 TS 的先天优势,TS 越来越受欢迎。

但是请记住:

**** Hidden Message *****
选择 TypeScript 还是 JavaScript 要由开发者自己去做决定。

如果你喜欢类型安全的语言,那么推荐你选择 TS。

如果你已经用 JS 好久了,你可以选择走出舒适区学习 TS,也可以选择坚持自己的强项,继续使用 JS。

static/image/hrline/2.gif

下一篇:0 2 4 3 ★ 牛X到很骚的 JS 移位操作|【只有魔法才能对抗魔法】



如果喜欢,别忘了评分{:10_281:} :

http://xxx.fishc.com/forum/201709/19/094516hku92k2g4kefz8ms.gif

这位鱼油,如果喜欢本系列Js帖子,请订阅 专辑☞(传送门)(不喜欢更要订阅{:10_297:} )

qiuyouzhi 发表于 2020-1-3 21:03:40

666

逗泥玩 发表于 2020-1-17 21:48:11

6666

weiter 发表于 2020-1-19 21:21:30

看看

love_py 发表于 2020-1-22 20:33:38

马上要学js结果又来了一门新的

TCY 发表于 2020-2-5 12:15:36

……

淘气的淘气 发表于 2020-2-5 21:49:14

RE: 0 2 4 2 ★ TypeScript 一统天下,JavaScript 败北?? [修改]

炒鱼君-ff7 发表于 2020-2-20 19:41:17

????

小白撞大牛 发表于 2020-3-21 00:22:05

看看

ghbjimmy 发表于 2020-3-23 03:32:30

TS必须是要学习的。

5555yxy 发表于 2020-4-5 21:17:50

回复

MoukuC 发表于 2020-5-5 09:11:19

1024

tianyuan 发表于 2020-5-12 14:41:18

{:10_277:}

优时风 发表于 2020-5-20 13:20:01

1

zwhe 发表于 2020-5-26 16:04:37

{:7_130:}

kmq116 发表于 2020-6-7 02:23:17

11111111111111111111

liuzhengyuan 发表于 2020-7-22 18:38:25

iguazu 发表于 2020-9-1 08:23:39

让我康康

GLBGLB 发表于 2020-12-23 16:50:17

hello

python/print 发表于 2021-2-20 15:39:37

看看需要记住什么?
页: [1] 2
查看完整版本: 0 2 4 2 ★ TypeScript 一统天下,JavaScript 败北??