beta:互動尚未到位...
代碼書 - 打字稿
歡迎使用CodeBook-您的學習打字條指南!通過從零到英雄的示例中的示例中學習。該存儲庫是初學者和經驗豐富的開發人員的寶貴資源,提供了精心策劃的示例和解釋集合,以幫助您掌握打字稿。
快速開始
請按照以下步驟開始使用CodeBook:
- 將存儲庫克隆到您的本地計算機。
- 通過運行NPM安裝來安裝項目依賴項。
- 通過運行NPM運行構建來編譯打字稿代碼。
- 通過執行相應的NPM腳本來運行每一章的示例。
# replace number with chapter you want to see output from.
npm run chapter:1
請注意,大多數示例都會輸出虛擬文本。為了更詳細地探索代碼,建議您本身閱讀腳本。您可以在./src目錄中找到源代碼,並在各章中導航。
確保您在計算機上安裝了node.js,最好按照包裝的發動機字段中指定的16版或更高版本。已對代碼存儲庫進行了測試和驗證以與Node.JS 16一起工作。打字稿編譯器中的ECMA2020目標最少需要Node.js版本10。
隨時探索下面提供的快速鏈接或潛入源代碼以增強您的學習體驗。愉快的編碼!
注意:該代碼庫經過連續測試和維護,但請注意,某些部分可能正在開發或不深入覆蓋。非常感謝您的反饋和貢獻使該存儲庫對打字稿社區更有價值。
裡面有什麼?
CodeBook涵蓋了廣泛的打字稿主題,從基礎知識開始,逐漸發展為更高級的概念。每個主題都伴隨著清晰而簡潔的例子,使您可以通過做學習。從原始類型和類型的別名到類,模塊和高級類型系統,CodeBook都可以覆蓋您。
學習路徑
該存儲庫被設計為速成課程,在打字稿中從零到英雄。它的結構是使您逐步建立知識和技能的方式。從基本原理開始,然後努力工作,在您走時解決更複雜的概念。只要您需要復習,就可以隨意以自己的節奏探索並重新訪問主題。
什麼是打字稿?
- JavaScript是一種腳本語言,也稱為解釋的語言,這意味著該代碼是在運行時通過行執行的,而不是在執行前將代碼編譯成二進制形式。該解釋通常由JavaScript解釋器完成 - 一些常見的解釋是Node.js或任何瀏覽器(在支持JavaScript的支持下,這可能都是所有的)。
- Typescript是JavaScript的超集,這意味著任何有效的JavaScript代碼也是有效的Typescript代碼。但此外,它引入了一個編譯器(TSC),該編譯器(TSC)將打字稿代碼轉換為JavaScript,使您能夠利用打字稿的其他功能和好處,同時仍將JavaScript作為執行平台。
- TS範圍-TSC認為編譯器中包含的所有文件屬於同一全局空間。如果JS文件由配置包含在JS文件中,也適用。為了防止範圍的態度,將每個文件包裹起來,以分開範圍。
- 從技術上講,JavaScript代碼庫的典型生命週期將是開發,然後是運行時執行。當然,生命週期的其他階段,例如換,建築,生成,測試,出版,部署等。為簡單起見,在這裡,我們將把所有暴期限的階段總結到“開發”中,然後將其總結為“運行時”。
- 鑑於所有這些,可以肯定地說,Typescript引入了強制性階段 - 彙編 - 作為額外的成本,但是大大減少錯誤的獎勵是非常感謝。
為什麼要打字稿?
- 靜態分析 - 代碼庫變為“強鍵入”,這意味著對象註釋必定會接口和聲明,從而使您可以在運行時具有“形狀”或每個對象的“類型”。在運行應用程序之前,這可以改善捕獲錯誤(通過類型安全)。
- 工具 - IDE在支持打字稿的情況下將大大改善您的編碼工作流程。 VSCODE使用引擎蓋下的打字稿,即使使用JS代碼庫也有幫助。
- 可讀性 - 具有明確的對象定義(類型)有助於了解對象的行為以及它的行為方式,而不僅僅是具有屬性的“隨機”對象。進一步的Typescript通過引入語言功能(例如接口,仿製藥和其他)來增強JavaScript,所有這些功能都使您可以更好地構建一個人的代碼庫。
- 可維護性 - 由於被觸發的類型安全性,您可以觀察到依賴項,參考和等等。所有這些都從靜態分析開始。
- 採用 - 由於Typescript是在JavaScript之上構建的,因此可以很容易地採用。更進一步,這可能會逐漸發生。
什麼時候到打字稿?
值得注意的是,與編寫普通的JavaScript相比,Typescript引入了額外的複雜性。如果您從事一個小項目,截止日期緊縮或需要快速原型,那麼打字稿可能無法提供實質性的好處,而JavaScript可能是一個更合適的選擇。
貢獻
該代碼手冊是一個開源項目,歡迎捐款!如果您發現任何錯誤,提出改進建議,或想添加更多示例以增強學習經驗,請隨時提交拉動請求。我們可以一起為打字稿社區提供更好的資源。
注意:此代碼手冊正在不斷發展,並且可能缺少或不涵蓋某些主題。您的反饋和貢獻將有助於使這個存儲庫對每個人都更加全面和有價值。
目錄
- 第1章:不安全
- 第2章:Hello World!
- 第3章:原始
- 第4章:收藏
- 第5章:功能
- 句法
- 無返回類型
- 情境
- 明確的參數
- 呼叫簽名
- 構造函數簽名
- 超載簽名
- 休息參數
- 傳播論點
- 第6章:對象
- 可選屬性
- 非零斷言
- 可選的鏈接
- 匿名的
- 參考:這個
- 破壞性
- 預設值
- 可讀修飾符
- 可讀的突變
- 索引簽名
- 多餘的財產檢查
- 第7章:類型
- 別名
- 聯盟
- 路口
- 文字
- 未知類型
- 內聯類型
- 絕不
- 功能類型表達式
- 擦除
- 對像類型
- 功能類型
- 條件類型
- 映射類型
- 字符串操縱類型
- 第8章:接口
- 第9章:鑄造
- 第10章:變窄
- 第11章:仿製藥
- 第12章:反思
- 第13章:班級
- 句法
- 字段
- 可讀
- 構造函數
- 超載
- 超級通話
- 方法
- 特性
- 遺產
- 接口
- 覆蓋
- 會員訪問
- 靜態成員
- 抽象
- 多態性
執照
該項目已根據MIT許可獲得許可。有關更多信息,請參見許可證文件。
貢獻
歡迎對本代碼簿的貢獻!如果您有任何錯誤報告,功能請求或想提交拉動請求,請遵循貢獻文件中概述的指南。
路線圖
該代碼簿的未來計劃包括擴大打字稿主題的覆蓋範圍,添加更多示例,並提供互動練習來加強學習。此外,我們旨在納入社區反饋並解決任何報告的問題。
致謝
特別感謝以下個人和項目的貢獻,靈感和支持:
- 打字稿:打字稿語言和社區。
- 很棒的TS:精心策劃的打字稿資源列表。
資源
這裡有一些其他資源來進一步增強您的打字稿學習:
支持
如果您遇到任何問題或有任何疑問,請隨時通過在GitHub存儲庫中創建問題來解決。
結論
感謝您對本代碼手冊的關注!我們希望這個打字稿的示例和解釋集可以幫助您進行學習之旅。我們鼓勵您探索代碼,實驗並提供反饋。愉快的編碼!