iT邦幫忙

2024 iThome 鐵人賽

DAY 1
0

本身是一位 React 開發者,兩年前第一次自學接觸到 TypeScript,後來因前份工作主要專注於 VR 技能相關開發,且公司開發規範中不使用 TypeScript,對其應用的記憶變得有些薄弱。

近期轉換到需要使用 TypeScript 開發的新工作,正好看到這次鐵人賽的開賽報名,因此決定以此為主題,透過這個機會重新熟悉 TypeScript,並結合 React 進行實作。

TypeScript 並不是一種全新的語言,它是 JavaScript 的超集,簡單來說,它完全兼容 JavaScript 的語法,同時增加了類型檢查等功能,當然這樣的方式有利有弊,以下是 TypeScript 與 JavaScript 的一些主要優缺點:

  • 優點:
  1. 開發過程更嚴謹,能夠避免因型別錯誤引發的 bug。
  2. 提高代碼的可讀性與可維護性,特別是對於大型專案。
  3. 許多錯誤可以在編譯時發現,而非在正式上線後才察覺。
  • 缺點:
  1. 需要學習成本,尤其是對於不熟悉靜態型別的開發者來說。
  2. 初期使用時,開發速度可能較慢。
  3. 增加了編譯步驟,儘管現代工具已經優化了編譯速度,但在某些情況下仍可能增加 CI/CD 的複雜性。

雖然整體來說 TypeScript 的優勢大於劣勢,但我個人認為還是需要參考專案的規模與需求,來決定是否需要使用 TypeScript 來開發。

在接下來的 30 天,我將會先從一般的 TypeScript 基本觀念開始,接著延伸到結合 React 的使用,希望在這 30 天也能夠幫助同樣在學習 TypeScript 的人。


【 補充 】靜態型別 vs 動態型別

  • 靜態型別(Static Typing)
    在程式碼編寫和編譯時就已經決定好變數的型別,並且在程式執行期間不會改變,像是 TypeScript 這樣的靜態型別語言,會要求開發者在定義變數時指定其型別,並在編譯階段進行型別檢查。:

    let age: number = 25;
    

    age 在編譯時已經被指定為 number,如果試圖將 string 賦值給 age,編譯器就會在編譯時報錯。

  • 動態型別(Dynamic Typing)
    與靜態型別相反,動態型別的語言中,變數的型別是在程式執行時才確定的,並且可以隨時改變。例如,JavaScript 就是一種動態型別語言,變數不需要在定義時指定型別,並且可以在程式運行期間改變其型別:

    let age = 30; // 初始是 number
    age = "thirty"; // 現在變成 string
    

下一篇
【 Day 02 】前置作業
系列文
React 開發者的 TypeScript 探索之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言