TypeScript 和 ES6 的区别
TypeScript
TypeScript 是一种开源的、纯面向对象的编程语言。它是强类型的 JavaScript 的超集,可以编译成普通的 JavaScript。TypeScript 由微软公司在 Apache 2 许可下开发和维护。它不能直接在浏览器中运行,需要编译器将其编译为 JavaScript 文件。TypeScript 的源文件扩展名为“.ts”。我们可以通过将任何有效的“.js”文件重命名为“.ts”文件来使用它。TypeScript 是带有一些附加功能的 ES6 版本。
TypeScript 的历史
TypeScript 是由 Anders Hejlsberg 开发的。它首次在 2012 年 10 月公开发布。在微软公司内部开发了两年之后,2013 年推出了 TypeScript 0.9 的新版本。当前版本的 TypeScript 是 TypeScript 3.4.5,于 2019 年 4 月 24 日发布。
ES6
ECMAScript(ES)是由 ECMA 国际标准化的脚本语言规范。它被创建来标准化 JavaScript。ES 脚本语言包含许多实现,最流行的是 JavaScript。开发人员主要使用 ECMAScript 来进行 Web 世界的客户端脚本编写。
ECMAScript 标准的第六版是 ECMAScript 6,后来重命名为 ECMAScript 2015。它是 JavaScript 语言的重大增强,允许我们编写复杂应用程序的程序。它添加了许多旨在使大型软件开发变得更容易的功能。最常见的 ES6 Web 浏览器是 Chrome 和 Firefox。一个转换器将基于 ES6 的代码转换为许多浏览器支持的 ES5。TypeScript 是一个转换器。Grunt、Gulp 和 Babel 是一些其他的转换器,用于编译模块。因此,TypeScript 支持 ES6。
历史
JavaScript 是由 Brendan Eich 于 1995 年 5 月引入的。它最初被称为 Mocha,这是 Netscape 创始人 Marc Andreessen 选择的一个名称,后来更名为 LiveScript。同时,Sun Microsystems 拥有 JavaScript 的商标。1995 年 12 月,Netscape 获得了商标许可,并将其改名为 JavaScript。
在 1996 年和 1997 年之间,Netscape 将 JavaScript 带到 ECMA 标准组织以维护语言的规范。1997 年 6 月,ECMA 技术委员会 39(TC39)成立,继续发展这种语言,最终发布了 ECMA-262 Ed.1。
JavaScript 的第一个标准版本是 ECMAScript 1,于 1997 年 6 月发布。一年后,发布了 ECMAScript 2,其中只包括一些 minor 的更改以保持 JavaScript 的 ISO 标准同步。1999 年 12 月,发布了 ECMAScript 3,它引入了许多流行的 JavaScript 功能。在 2009 年 12 月,发布了 ECMAScript 或 ES6,并随后重命名为 ECMAScript 2015。
TypeScript vs. ES6
类别 | TypeScript | ES6 |
---|---|---|
定义 | TypeScript 是一种免费和开源的纯面向对象编程语言。它由微软开发和维护。 | ES6 是 ECMAScript(ES)的一种版本,它是由 ECMA 国际标准化的脚本语言规范。 |
解释 | TypeScript 用于消除开发错误。 | ES6 在开发时间上相对更灵活。 |
数据类型 | TypeScript 支持所有基本数据类型。 | ES6 不支持所有数据类型。 |
功能 | TypeScript 包含了泛型和类型注解、推断、枚举和接口等功能。 | ES6 不支持这些功能。 |
范围
TypeScript 有三个作用域。
- 全局作用域
- 类作用域
- 本地作用域
ES6 有两个作用域。
- 全局作用域
- 本地作用域
决策
TypeScript
1. if 语句
2. if-else 语句
3. else…if 和嵌套的 if 语句
4. switch 语句
ES6
1. if 语句
2. if-else 语句
3. else-if 阶梯/嵌套的 if 语句。
4. switch…case 语句
模块
TypeScript 模块有两种类型:
- 内部
- 外部模块
我们可以将 ES6 模块分类为:
- 导入模块
- 导出模块
循环
TypeScript 和 ES6 都有相同的循环。
- 确定循环
- 不确定循环
TypeScript 和 ES6 都有相同的循环。
- 确定循环
- 不确定循环
选择 TypeScript 还是 ES6
开发人员选择 TypeScript:
- 类型安全
- JavaScript 的超集
- 强大的类型系统,包括泛型和 JS 特性。
- 对齐 ES 开发以实现兼容性。
- 结构化子类型,而不是名义上的子类型。
- 编译时错误。
- 以 JavaScript 开始和结束。
开发人员选择 ES6:
- ES6 代码比传统 JS 代码更简短。
- 模块系统标准化。
- 极致紧凑。
- 解构赋值。
使用 TypeScript 和 ES6 的公司
使用 TypeScript 的公司列表:
- Slack
- Asana
- CircleCI
- Intuit
- Swat.io
- Avocode
使用 ES6 的公司列表:
- Slack
- StackShare
- eBay
- Asana
- Intuit
- Swat.io