--- GA: G-7BSJTG7RYN --- ### JavaScript 與 TypeScript 的關係 TypeScript 是一款由 Microsoft 開發與維護的語言,是 JavaScript 的一個超集合(Superset)。 所謂 Superset 是指,包含另一種程式語言的程式語言,它能夠使用另一種程式語言的所有語法及功能,並且加入一些語法及功能。 而 TypeScript 具備這樣的特性,既可使用 JavaScript 的所有語法及功能,自身又加入了 **型別系統(Type System)** 與 **介面(Interface)** 設計的功能。 不過,需要留意的是,並非所有 JS 的功能都可以使用,相容性可以參考: [ECMAScript6 compatibility table](https://kangax.github.io/compat-table/es6) 中 Compilers/polyfills 的 TypeScript 欄。 TypeScript 增加這些功能的主要目的: > - 減少 JavaScript 對於變數的寬容性可能引起的潛在錯誤 > - 函式庫大小寫容易忘記,常常要再查,JavaScript 可協助識別 > - 讓後續維護更容易 而筆者選擇 TypeScript 的原因很單純,只是因為 Angular、Vue、React 三大框架現在都可以使用 TypeScript 編寫了,未來為了便於協作,相信使用 TypeScript 是必然。 --- ### Reference - [讓TypeScript成為你全端開發的ACE!- Maxwell Huang](https://www.books.com.tw/products/0010859134) - [讓 TypeScript 成為你全端開發的 ACE! 系列 - 第 11 屆 iThome 鐵人賽](https://ithelp.ithome.com.tw/users/20120614/ironman/2685) - [TypeScript Official Site](https://www.typescriptlang.org/docs) --- > 系列:[`跑完 JS30 就接著認識 TypeScript 入門`](https://hackmd.io/@elzuoc?tags=%5B%22%E8%B7%91%E5%AE%8C+JS30+%E5%B0%B1%E6%8E%A5%E8%91%97%E8%AA%8D%E8%AD%98+TypeScript+%E5%85%A5%E9%96%80%22%5D) > 上一篇:[前言與目錄](https://hackmd.io/@elzuoc/BJZNCLPyn) > 下一篇:[Day01:型別註記、型別斷言與型別推論](https://hackmd.io/@elzuoc/H1eItEny2) ###### tags: [`跑完 JS30 就接著認識 TypeScript 入門`](https://hackmd.io/@elzuoc?tags=%5B%22%E8%B7%91%E5%AE%8C+JS30+%E5%B0%B1%E6%8E%A5%E8%91%97%E8%AA%8D%E8%AD%98+TypeScript+%E5%85%A5%E9%96%80%22%5D) ###### Created on ∥ March 10, 2023 ###### 文章若有任何錯誤,還請不吝給予留言指正,謝謝大家!