學習程式滿一年了,轉職成為工程師也有半年多,這段時間充滿了各式各樣的挑戰,也接收到許多新知識。
這次想透過鐵人賽,來學習新的技術,也一同訓練寫作能力,希望在三十天之後,可以看到不一樣的自己。
目前在公司使用前端框架為 Next.js,加上團隊近來導入 TypeScript ,於是藉此機會讓自己更積極了解何謂 TypeScript 以及熟練其使用方式,加上目前主流的三大框架 React 、 Vue 和 Angular 都有支援 TypeScript ,因此學起來!!!
TypeScript 是以 JavaScript 為基礎,所建立的程式語言。相對 JavaScript 擁有資料型別檢查與預先定義,可以說是 JavaScript 的延伸版,當然也可以在 TypeScript 使用原生 JS ES6 或 ES5 的語法,但如果有任何不清楚定義或邏輯,造成引發 BUG 風險,TypeScript 將會進一步的拋出 Warning 來提醒我們。
JaveScript 是個自由度高的程式語言,例如變數可以依照賦值來自動轉換該變數型別,這也是直譯式很常見的特性,因此容易學習及上手,這對新手來說福音,但往後有機會成為惡夢。在我們開發過程中,常常會遇到要呼叫 function 時,發現參數帶入後,卻發生錯誤,Debug 還要弄半天,最後才發現型別錯誤。
如果加入 TypeScript,我們就可以預先定義型別,當我們傳入錯誤型別的參數時,TypeScript 就會直接以錯誤訊息,進一步提醒我們,如此一來,我們的 code 將會更強健。
簡單整理一下,TypeScript 雖然會降低 JaveScript 自由度,多了點約束,但是隨之而來的好處則是讓我們在撰寫上更為嚴謹,減少錯誤的發生。