武夷 | 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 將來版本。npm

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
相關文章
相關標籤/搜索