關於本手冊
在進入程式設計社群 20 多年後,JavaScript 現已成為有史以來最廣泛使用的跨平臺語言之一。JavaScript 最初只是一種為網頁新增微小互動的指令碼語言,如今已成長為各種規模的前端和後端應用的首選語言。雖然用 JavaScript 編寫的程式在規模、範圍和複雜性上呈指數級增長,但 JavaScript 語言表達不同程式碼單元之間關係的能力卻沒有隨之提升。再加上 JavaScript 本身較為獨特的執行時語義,這種語言與程式複雜性之間的錯位,使得大規模管理 JavaScript 開發變得十分困難。
程式設計師編寫的最常見錯誤可以描述為型別錯誤:即在預期使用某種型別值的地方,卻使用了另一種型別的值。這可能是由於簡單的拼寫錯誤、對庫 API 表面理解不足、對執行時行為的錯誤假設,或是其他原因造成的。TypeScript 的目標是成為 JavaScript 程式的靜態型別檢查器——換句話說,它是一種在程式碼執行前(靜態)執行,並確保程式型別正確(型別檢查)的工具。
如果您在沒有 JavaScript 背景的情況下接觸 TypeScript,並打算將 TypeScript 作為您的第一門語言,我們建議您先閱讀 Microsoft Learn JavaScript 教程 或 Mozilla Web 文件中的 JavaScript 指南。如果您有其他語言的經驗,透過閱讀本手冊,您應該能夠很快上手 JavaScript 語法。
本手冊的結構是如何安排的
手冊分為兩個部分
-
手冊
TypeScript 手冊旨在成為一本向日常程式設計師解釋 TypeScript 的綜合文件。您可以透過左側導航欄從上到下閱讀本手冊。
您可以期待每一章或每一頁都能讓您對相關概念有深刻的理解。TypeScript 手冊並非完整的語言規範,但它是涵蓋所有語言特性和行為的綜合指南。
完成本指南的讀者應該能夠
- 閱讀並理解常用的 TypeScript 語法和模式
- 解釋重要編譯器選項的影響
- 在大多數情況下正確預測型別系統的行為
為了清晰和簡潔起見,手冊的主要內容不會探討所涵蓋特性的每一個邊緣情況或細枝末節。您可以在參考文章中找到關於特定概念的更多細節。
-
參考資料
導航欄中手冊下方的參考部分旨在提供關於 TypeScript 特定部分如何工作的更深入理解。您可以從上到下閱讀,但每一節都旨在深入解釋一個單一概念——這意味著它並不追求連貫性。
非目標
本手冊旨在成為一份簡潔的文件,可以在幾小時內輕鬆讀完。為了保持篇幅簡短,某些主題將不會涉及。
具體來說,本手冊不會全面介紹函式、類和閉包等核心 JavaScript 基礎知識。在適當的情況下,我們會包含背景閱讀連結,供您補充這些概念。
本手冊也不是語言規範的替代品。在某些情況下,為了追求高層次、易於理解的解釋,我們跳過了邊緣情況或正式的行為描述。相反,我們提供了單獨的參考頁面,更精確、更正式地描述了 TypeScript 行為的許多方面。參考頁面不適合不熟悉 TypeScript 的讀者,因此它們可能使用高階術語或引用您尚未閱讀過的主題。
最後,除必要情況外,手冊不會涵蓋 TypeScript 如何與其他工具互動。關於如何配置 TypeScript 與 webpack、rollup、parcel、react、babel、closure、lerna、rush、bazel、preact、vue、angular、svelte、jquery、yarn 或 npm 等工具協作的主題均不在本手冊範圍內——您可以在網路上的其他地方找到這些資源。
入門
在開始閱讀 基礎型別 之前,我們建議先閱讀以下入門頁面之一。這些介紹旨在突出 TypeScript 與您偏好的程式語言之間的關鍵相似之處與不同之處,並澄清針對這些語言的常見誤解。
- 面向新手的 TypeScript
- 面向 JavaScript 程式設計師的 TypeScript
- 面向 Java/C# 程式設計師的 TypeScript
- 面向函式式程式設計師的 TypeScript
否則,請直接跳轉到 基礎型別。