[TS] #1 為什麼需要 TypeScript? - antqtech/KM GitHub Wiki

什麼是 TypeScript?

TypeScript 是一種開源的程式語言,它是 JavaScript 的超集。它允許開發者使用類型標註和其他靜態特性,以增強 JavaScript 的功能。TypeScript 的代碼最終會被編譯成原生的 JavaScript 代碼,這意味著所有 TypeScript 的特性都能在現代瀏覽器和 Node.js 環境中運行。

為什麼需要 TypeScript? 靜態類型檢查:JavaScript 是一種動態類型語言,這意味著變數的類型在運行時才確定。TypeScript 引入了靜態類型檢查,讓你在開發過程中即時發現潛在的錯誤。這不僅有助於提高代碼的品質,還能減少由於類型錯誤導致的不必要的錯誤和調試時間。

更好的代碼可讀性與維護性:類型標註和明確的接口定義讓你的代碼更易於理解和維護。當你閱讀一份 TypeScript 代碼時,你可以快速地了解函數的預期輸入和輸出類型,以及物件的結構和成員。

進階的編輯器支援:由於 TypeScript 提供了類型資訊,IDE 和編輯器(如 Visual Studio Code)能夠提供更強大的程式碼提示、自動完成和錯誤檢測。這將大大提高開發效率,幫助你更快速地撰寫代碼。

漸進式採用:你可以在現有的 JavaScript 項目中逐步導入 TypeScript,而不需要對現有代碼進行重大改寫。這是因為 TypeScript 不強制要求所有的代碼都要有類型標註,你可以選擇從少量的檔案開始,然後逐漸擴大範圍。

TypeScript 與 JavaScript 的不同點

靜態類型:TypeScript 允許你在變數、函數參數、返回值和物件成員上加上類型標註。這使得代碼的類型在編譯時就能進行檢查,而 JavaScript 僅在運行時檢查類型。

類與介面:TypeScript 支援類(Class)和介面(Interface)的概念,使得面向物件的程式設計更易於實現和理解。JavaScript 也可以使用物件和原型繼承,但與類和介面相比較複雜。

特有的功能:TypeScript 引入了一些 JavaScript 所沒有的功能,如元組(Tuple)、列舉(Enum)和泛型(Generics)。這些功能增加了程式碼的彈性和可讀性。

編譯時錯誤檢測:在使用 TypeScript 時,如果你的代碼存在類型錯誤,編譯器會在編譯時期發出錯誤提示。這幫助你在運行代碼之前就能修復潛在的錯誤。

TypeScript 的優點: 增強代碼品質:靜態類型檢查、類型標註和明確的接口定義使得代碼更加可靠,減少錯誤和 Bug。

更好的可讀性與維護性:TypeScript 提供更豐富的代碼提示,讓代碼更易於閱讀和理解。

開發效率提高:編輯器支援、類型檢查和錯誤提示幫助你更快地撰寫代碼,減少調試時間。

順利過渡:TypeScript 的漸進式採用使得你可以在現有的 JavaScript 項目中逐步導入 TypeScript,無需重寫現有代碼。

TypeScript 的缺點: 學習成本:如果你之前只對 JavaScript 有經驗,學習 TypeScript 需要花費一些時間,特別是理解類型系統和新的語言功能。

額外的編譯步驟:由於 TypeScript 最終會被編譯成 JavaScript,這意味著在開發過程中需要進行額外的編譯步驟。

如何入門 TypeScript

學習 JavaScript:在開始學習 TypeScript 之前,確保你已經熟悉 JavaScript 的基本語法和概念,這樣你會更容易理解 TypeScript。

安裝 TypeScript:使用 npm 或 yarn 安裝 TypeScript:

Copy code npm install -g typescript 撰寫 TypeScript 代碼:開始撰寫一些簡單的 TypeScript 代碼,並瞭解如何使用類型標註。

學習類與介面:了解 TypeScript 中的類和介面,以及它們與 JavaScript 中的物件和原型繼承的區別。

型別檢查:深入了解 TypeScript 的型別檢查,掌握如何定義函數的輸入和輸出類型,以及如何使用泛型。

整合到項目中:將 TypeScript 整合到你的項目中,並逐步將 JavaScript 檔案轉換為 TypeScript 檔案。

官方文檔和資源:查閱 TypeScript 的官方文件和其他相關資源,來深入瞭解更多進階的特性和最佳實踐。

總結來說,TypeScript 是一個強大的語言,它提供了靜態類型檢查和其他許多優點,幫助你在開發過程中寫出更安全、可讀性更好且易於維護的代碼。即使你是 JavaScript 的新手,掌握 TypeScript 也會為你未來的職業生涯帶來很大的優勢。

推薦學習資源:https://willh.gitbook.io/typescript-tutorial/