为什么选择TypeScript
TypeScript (TS) 是微软开发的一种开源编程语言,可以编译成 JavaScript (JS) 代码。自 2012 年发布以来,这门语言一直保持活跃发展并且越发受欢迎。
TypeScript 和 JavaScript 的区别是什么?
TypeScript 是 JavaScript 的超集,可以编译成 JavaScript 代码。用 JavaScript 编写的合法代码,在 TypeScript 中依然有效。TypeScript 是纯面向对象的编程语言,包含类和接口的概念。程序员可以用它来编写面向对象的服务端或客户端程序,并将它们编译成 JavaScript 代码。
- TypeScript 和 JavaScript 的关系图。
-
主要不同点
TS是一种面向对象编程语言,而JS是一种脚本语言(尽管JS是基于对象)
TS支持可选参数,JS则不支持该特性
TS支持静态类型,JS不支持
TS支持接口,JS不支持接口
-
为什么要用 TypeScript
TS在开发时就能给出编译错误,而JS错误则需要在运行时才能暴露
作为强类型语言,你可以明确知道数据的类型。代码可读性极强,几乎每个人都能理解
TS非常流行,被很多业界大佬使用。像Asana、Circle CL 和 Slack 这些公司都在用TS
-
为什么不该用TypeScript
TS需要编译。TS得通过编译才能变成JS代码
随着时间的推移,类型可能变得非常复杂。当项目不断变大时,这种情况十分常见
尽管TS时类型安全的,在有些情况下编译器也有检查不出任何错误的情况。当我们修改编译后的JS代码时,错误就不可检测了。不过随着编译器不断改进,这种情况会越来越少。
-
TypeScript 是一种给 JavaScript 添加特性的语言扩展。增加的功能包括:
类型批注和编译时类型检查
类型推断
类型擦除
接口
枚举
Mixin
泛型编程
名字空间
元组
Await
两者的对比
JavaScript | TypeScript | |
---|---|---|
语言 | 脚本语言 | 面向对象编程语言 |
学习难度 | 灵活易学 | 需要有脚本编程经验 |
类型 | 轻量级解释编程语言 | 强类型的面向对象编程语言 |
客户端/服务端 | 客户端服务端都有 | 侧重客户端 |
拓展名 | .js | .ts 或 .tsx |
耗时 | 更快 | 编译代码需要些时间 |
数据绑定 | 没有类型和接口的概念 | 使用类型和接口表示数据 |
注解 | 不需要注解 | 使用注解才能最大限度发挥 TypeScript的特性 |
语法 | 所有的语句都写在脚本标签内。浏览器将脚本标签内的文本识别为脚本 | 一个 TypeScript 程序由模块、方法、变量、语句、表达式和注释构成。 |
静态类型 | JS 中没有静态类型的概念 | 支持静态类型 |
模块支持 | 不支持模块 | 支持模块 |
接口 | 没有接口 | 支持接口 |
可选参数方法 | 不支持 | 支持 |
原型 | 没有这种特性 | 支持原型特性 |
开发者社区 | JS 使用范围很广,被编程社区广泛接受和使用 | TS 比较新,编程社区相对较小 |
参考选择 | 小型项目 | TS 是一种面向对象语言,代码更简洁,可读性和复用性强。因此 TS 更适合大型项目。 |
TypeScript是ECMAScript 2015的语法超集,是JavaScript的语法糖。JavaScript程序可以直接移植到TypeScript,TypeScript需要编译(语法转换)生成JavaScript才能被浏览器执行。