武夷 | TypeScript 是什么?

2020/2/22 11:02:47

本文主要是介绍武夷 | TypeScript 是什么?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

image.png

啦啦啦,我是武夷,一个不太会卖萌的码农。今天我们一起来聊一聊 TypeScript 是什么?

TypeScript 特性

  • JavaScript that scales.(可伸缩的 JavaScript)
  • A statically typed superset of JavaScript that compiles to plain Javascript. (编译为纯 Javascript 的静态类型 JavaScript 超集)
  • Any browser. Any host. Any OS. (任何浏览器。任何主机。任何操作系统)
  • Open Source. (开源)
  • Great tools enabled by static types.(静态类型支持的强大工具)

JavaScript 版本之间的功能差距

Jietu20200218-181527-HD.gif

版本 官方名称 发布日期
ES9 ES2018 2018年6月
ES8 ES2017 2017年6月
ES7 ES2016 2016年6月
ES6 ES2015 2015年6月
ES5.1 ES5.1 2011年6月
ES5 ES5 2009年6月
ES4 ES4 废弃
ES3 ES3 1999年12月
ES2 ES2 1998年6月
ES1 ES1 1997年6月

所有浏览器中运行的 JavaScript 版本基于 ECMAScript3。版本 4 因为特性蠕动( feature creep )被取消了(他们试图一次添加很多特性)。虽然 ES5 是 JavaScript 的一个巨大版本,但是 ES2015 (也被称作 ES6 )也是 JavaScript 的重要更新。而 ES.Next 始终指 JavaScript 未来版本。

ES2015 ( ES6 ) 带来的重大特性

  • Arrow functions(箭头函数)
  • Promises
  • Generators
  • let 和 const
  • Classes(类)
  • Modules(模块)
  • Multiline strings(多行字符串)
  • Template literals(模板字面量)
  • Default parameters(默认参数)
  • The spread operator(展开操作符)
  • Destructuring assignments(解构分配)
  • Enhanced object literals(增强的对象字面量)
  • for..of 循环
  • Map 和 Set

ES2016(ES7) 的改进

  • Array.prototype.includes
  • 求幂运算符

ES2017(ES8)带来的重大新特性

  • 字符串填充(padStart 和 padEnd)
  • Object.values
  • Object.entries
  • Object.getOwnPropertyDescriptors()
  • 函数参数列表和调用中的尾随逗号
  • Async Functions (异步函数)
  • 共享内存 和 Atomics

ES2018(ES9) 带来的重大新特性

  • Rest(剩余)/Spread(展开) 属性
  • Asynchronous iteration (异步迭代)
  • Promise.prototype.finally()
  • 先行断言(lookahead) 和 后行断言(lookbehind)
  • Unicode 属性转义 \p{…} 和 \P{…}
  • 命名捕获组(Named capturing groups)
  • 正则表达式的 ‘s’ 标志

TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.

TypeScript 是 JavaScript 类型的超集,并且可以编译为纯 JavaScript。

TypeScript 遵循当前以及未来出现的 ECMAScript 规范。TypeScript 不仅能兼容现有的 JavaScript 代码,它也拥有兼容未来版本的 JavaScript 的能力。大多数 TypeScript 的新增特性 都是基于未来的 JavaScript 提案,这意味着许多 TypeScript 代码在将来很有可能会变成 ECMA 的标准.

image.png

TypeScript 数据榜

npm 下载量趋势图 (粒度:月)

image.png

RedMonk 编程语言排名: 2019 年 6 月

横坐标是 GitHub 上的人气排名,分析的 GitHub 部分的数据源是 GitHub Archive。
纵坐标是 Stack Overflow 上的人气排名。

lang.rank_.619.png

RedMonk 一段时间内排名前 20 位的语言: 2019 年 6 月

下面是一个可视化图表,用于跟踪排名历史上前 20 种语言的调整。

top20_201906.png

2019 Stack Overflow 年度最受欢迎的编程语言

aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy91RFJrTVdMaWEyOGpBRFdXMjhhUkhxelJnbGFqV0FHZmhRdEhHNW51M0RkRDVRM2liZ3pxR3RRREJqUHg5dGNUODJnMWVYM2tSMjlVQ2Z4dXBFck1jVFRnLzY0MA.jpeg

小结

今天我们学习到 JavaScript  各个版本之间功能差距与特性,TypeScript 也在兼容 JavaScript 方面很出色。了解到 TypeScript 近几年在各个领域的数据榜,潜力非常大,是一项非常值得学习的新技术。

1581478124541-aa131c7f-10ad-435e-8a8e-999f411d9ba1.png



这篇关于武夷 | TypeScript 是什么?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程