iT邦幫忙

2024 iThome 鐵人賽

DAY 1
7
JavaScript

TypeScript 初學者也能看的學習指南系列 第 1

TypeScript 初學者也能看的學習指南 01 - 一起來寫 TypeScript 吧

  • 分享至 

  • xImage
  •  


歡迎來到本系列文「TypeScript 初學者也能看的學習指南」,全文講解的 TypeScript 版本為 5.6

時隔一年又來參加鐵人賽了,年初時有上過 TypeScript 的課程,為了試圖喚醒自己沈睡已久的記憶,今年鐵人賽就以「TypeScript」為主題,希望帶給大家更多豐富的內容 /images/emoticon/emoticon30.gif

About TypeScript

TypeScript is JavaScript with syntax for types.

TypeScript 是 javaScript 的超集,由微軟開發的開源專案(Github Repo)。此外, TypeScript 也是一個基於 JavaScript 建構的強型別語言,提供了「靜態型別檢查」、「物件導向設計」、「對 ES6 的支援」等功能,它會被編譯成純 JavaScript,並在任何可以運行 JavaScript 的環境中運行,包括瀏覽器、Node.js、Deno 等

超集(Superset)是數學和計算機科學中的一個專業術語,指的是一個集合包含另一個集合的所有元素。換句話說,TypeScript 是 JavaScript 的超集,意思就是你可以在 TypeScript 中直接寫 JavaScript

Why TypeScript?

1. 市場需求
近年來,越來越多公司要求工程師要會 TypeScript 或是將 TypeScript 列為加分項目。讓我們有了一個學習的理由😎

2. JavaScript 的坑還踩不夠嗎 ⁉️
寫 TypeScript 的時候,本身還是在寫 JavaScript,但它補足了 JavaScript 的不足,相信很多人都知道JavaScript 是弱型別語言,對於型別沒有嚴格的規範,而 TypeScript 提供了「靜態型別檢查」,並搶先一步在編輯器中就能提早發現錯誤

JavaScript 是一種「動態型別」語言,變數的 tpye 是在動態運行時確定的,而不是在編譯時確定的。這可能導致一些型別錯誤在開發過程中難以發現。以下這段 JavaScript 並不會報錯

let value = "123";
value = 123; // 不會報錯,但可能引發運行時的錯誤

3. 加強可讀性、維護性、可擴展性
有時候我們單看命名無法準確判斷型別,要是這個命名不夠準確,可能導致誤會
如果能有型別註釋(Type Annotations),在閱讀上就可以事先知道個變數、參數的型別。就算沒有每個地方都手動定義, 型別推斷(Type Inference) 也會幫助我們自動推斷型別,不需要開發者再寫大量的型別定義,提升開發體驗和維護性

大補帖

也可由以下幾點判斷是否導入一項新技術
這是我在 「Clean Code 學派的風格與實踐」裡看到的

  1. 適用性:這項技術是解決目前問題最合適的工具嗎?
  2. 可靠性:這項技術是否可靠,並且持續運作
  3. 可用性:這項技術是否簡單易用且有文件說明
  4. 相容性:這項技術是否能與現有 codebase 很好地整合
  5. 適應性:這項技術能適應不斷變化的需求嗎?

你可以透過本系列文?

  • 了解 TypeScript 基本概念
  • 了解 TypeScript 如何應用在前端框架(以 Vue.js 為例)
  • 用 TypeScript 刷題(以 TypeHero 為主)

前面的篇章會著重在在介紹 TypeScript 的各知識點。後面的篇章則會著重在實際應用和刷題

本系列文適合誰閱讀?

🙋🏻‍♀️ 想學習 TypeScript 的初學者
🙋🏻‍♀️ 有系統性學習過 JavaSceipt 的人

每天講的內容有推到 github 上喔

References


下一篇
TypeScript 初學者也能看的學習指南 02 - 起手式:環境建立
系列文
TypeScript 初學者也能看的學習指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
harry xie
iT邦研究生 1 級 ‧ 2024-09-11 13:25:18

/images/emoticon/emoticon12.gif

hannnahTW iT邦新手 1 級 ‧ 2024-09-11 23:11:00 檢舉

哇 是好久不見的前輩😊

我要留言

立即登入留言