商品描述
作者:Dan Vanderkam 出版社:歐萊禮 出版日:1141124 ISBN:9786264251754 語言:中文繁體 裝訂方式:平裝 內容簡介 內容簡介:提昇TypeScript技術的83個具體做法 「Effective TypeScript探討使用TypeScript時最常見的問題,並提出實用的、結果導向的建議。無論你的TypeScript經驗如何,都可以從本書學到一些東西。」 —Ryan Cavanaugh,微軟TypeScript工程主管 「本書滿載著實用的撇步,專業的TypeScript開發者都應該把這本書放在桌上。即使你認為已經熟悉TypeScript了,買下這本書也絕對不會後悔。」 —Yakov Fain, Java Champion TypeScript是包含型態的JavaScript超集合,能有效解決許多JavaScript惡名昭彰的問題。然而,TypeScript有自成一格的學習曲線,開發者往往需投入大量時間來實際操作才能有效運用其強大功能。這本實用的書籍採取《Effective C++》與《Effective Java》(皆由Addison-Wesley出版)風糜已久的寫作風格,提出83條具體建議,明確說明哪些做法值得採用、哪些應該避免,以及如何深入理解這門語言的設計思維。 作者Dan Vanderkam將透過實際範例指引你如何實際運用每一項建議。無論你是TypeScript的初學者,還是已掌握基礎知識、希望更進一步的開發者,本書都將協助你晉升為能熟練運用 TypeScript的專家。 第二版內容更新至TypeScript 5.X,並加入了兩個全新章節,深入介紹型態級程式設計與各種進階的 TypeScript技巧。 •學習TypeScript型態系統的運作細節 •使用型態推斷,以最少的型態註記來獲得嚴密的安全性 •設計型態,讓程式碼更安全且更容易瞭解 •使用泛型型態與型態級設計來定義複雜的API •瞭解依賴項目與型態宣告檔案在TypeScript之中如何運作 •將JavaScript程式順利遷移至TypeScript 作者簡介 作者介紹Dan Vanderkam 是一位獨立軟體工程師,也是 TypeScript 及其生態系統的長期使用者、撰稿人和貢獻者。他曾是 Sidewalk Labs 的首席軟體工程師,以及 Google 的資深軟體工程師,負責開發數十億用戶使用的搜尋功能。譯者介紹 目錄 第一章 認識TypeScript 第1項:瞭解TypeScript與JavaScript之間的關係 第2項:知道你正在使用哪些TypeScript設定選項 第3項:認知程式碼生成與型態無關 第4項:熟悉結構定型 第5項:限制any型態的使用頻率 第二章 TypeScript的型態系統 第6項:使用編輯器來訊問和探索型態系統 第7項:將型態想成值的集合 第8項:知道如何判斷一個代號是在型態空間裡,還是值空間裡 第9項:優先使用型態註記,而非型態斷言 第10項:避免使用物件包裝型態(String、Number、Boolean、Symbol、BigInt) 第11項:區分「額外屬性檢查」與「型態檢查」 第12項:盡可能為整個函式表達式指定型態 第13項:瞭解type和interface之間的差異 第14項:使用readonly來避免就地修改造成的錯誤 第15項:使用型態操作與泛型型態來避免重複 第16項:優先考慮比索引簽章更精確的替代方案 第17項:避免數值索引簽章 第三章 型態推斷與控制流分析 第18項:避免可推斷的型態使程式碼變得雜亂 第19項:讓不同的型態使用不同的變數 第20項:瞭解變數是怎麼獲得它的型態的 第21項:一次建立物件 第22項:瞭解型態窄化 第23項:使用一致的別名 第24項:瞭解背景資訊在型態推斷中的作用 第25項:瞭解演變的型態 第26項:使用泛函結構與程式庫來協助型態流動 第27項:使用async函式來改善型態流動,而不是使用callback 第28項:使用類別和柯里化來建立新推斷位置 第四章 型態設計 第29項:優先使用始終代表有效狀態的型態 第30項:寬鬆地接收東西,嚴格地產生東西 第31項:不要在註釋中重複敘述型態資訊 第32項:避免在型態別名中加入null或undefined 第33項:將null值推到型態外圍 第34項:優先考慮多個介面的聯集,而不是包含聯集的介面 第35項:盡量使用比字串型態更精確的型態 第36項:為特殊值定義獨立的型態 第37項:盡量避免使用「選用屬性」 第38項:避免反覆使用型態相同的參數 第39項:與其表達差異,不如統一型態 第40項:寧可使用不精確的型態,也不使用不正確的型態 第41項:用問題領域的語言來為型態命名 第42項:避免根據片面資料建立型態 第五章 不完善性與any型態 第43項:將any型態限制在最小範圍內 第44項:優先使用更精確的any版本,而不是一般的any 第45項:將不安全的型態斷言隱藏在定義了良好型態的函式中 第46項:讓型態不明的值使用unknown,而不是any 第47項:優先考慮型態安全的做法,而不是Monkey Patching 第48項:避免落入不完善陷阱 第49項:追蹤型態覆蓋率,以...