本身是一位 React 開發者,兩年前第一次自學接觸到 TypeScript,後來因前份工作主要專注於 VR 技能相關開發,且公司開發規範中不使用 TypeScript,對其應用的記憶變得有些薄弱。
近期轉換到需要使用 TypeScript 開發的新工作,正好看到這次鐵人賽的開賽報名,因此決定以此為主題,透過這個機會重新熟悉 TypeScript,並結合 React 進行實作。
TypeScript 並不是一種全新的語言,它是 JavaScript 的超集,簡單來說,它完全兼容 JavaScript 的語法,同時增加了類型檢查等功能,當然這樣的方式有利有弊,以下是 TypeScript 與 JavaScript 的一些主要優缺點:
雖然整體來說 TypeScript 的優勢大於劣勢,但我個人認為還是需要參考專案的規模與需求,來決定是否需要使用 TypeScript 來開發。
在接下來的 30 天,我將會先從一般的 TypeScript 基本觀念開始,接著延伸到結合 React 的使用,希望在這 30 天也能夠幫助同樣在學習 TypeScript 的人。
靜態型別(Static Typing)
在程式碼編寫和編譯時就已經決定好變數的型別,並且在程式執行期間不會改變,像是 TypeScript 這樣的靜態型別語言,會要求開發者在定義變數時指定其型別,並在編譯階段進行型別檢查。:
let age: number = 25;
age
在編譯時已經被指定為 number
,如果試圖將 string
賦值給 age
,編譯器就會在編譯時報錯。
動態型別(Dynamic Typing)
與靜態型別相反,動態型別的語言中,變數的型別是在程式執行時才確定的,並且可以隨時改變。例如,JavaScript 就是一種動態型別語言,變數不需要在定義時指定型別,並且可以在程式運行期間改變其型別:
let age = 30; // 初始是 number
age = "thirty"; // 現在變成 string