[ 收藏 ] [ 简体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

TypeScript編程
該商品所屬分類:圖書 -> 中國電力出版社
【市場價】
860-1248
【優惠價】
538-780
【作者】 鮑裡斯切爾尼 
【出版社】中國電力出版社 
【ISBN】9787519845964
【折扣說明】一次購物滿999元台幣免運費+贈品
一次購物滿2000元台幣95折+免運費+贈品
一次購物滿3000元台幣92折+免運費+贈品
一次購物滿4000元台幣88折+免運費+贈品
【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
版本正版全新電子版PDF檔
您已选择: 正版全新
溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
*. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
*. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
*. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
內容介紹



出版社:中國電力出版社
ISBN:9787519845964
版次:1

商品編碼:12685323
品牌:中國電力出版社(zhongguodianlichubanshe)
包裝:平裝

開本:16開
出版時間:2020-07-01
用紙:膠版紙

頁數:352
字數:417000

作者:鮑裡斯切爾尼

    
    
"

產品特色

內容簡介

學習基礎知識:學習 TypeScript 的不同類型和類型運算符,了解其作用和用法。

探討高級話題:理解 TypeScript 復雜的類型繫統,學習如何安全地處理錯誤和構建異步程序。

聯繫實際應用:在你鐘愛的前後端框架中使用 TypeScript,把現有的 JavaScript 項目遷移到 TypeScript,以及在生產環境中運行 TypeScript 應用。


作者簡介

Boris Cherny 就職於 Facebook,是工程和產品部門主管。他曾在風投公司、廣告技術公司和一些初創公司工作。他喜歡研究編程語言、代碼合成和靜態分析,樂於構建讓人鐘愛的用戶體驗。


精彩書評

“這本書是深入學習TypeScript的不&二之選。本書揭露了在 JavaScript的基礎上使用類型繫統的各種好處,詳解了精通TypeScript語言的要領。”

——Minko Gechev

Google Angular 團隊的工程師

“通過這本書,我快速而有效地掌握了 TypeScript 的工具和生態繫統。以前我在實際使用中遇到的各種問題,在這本書中都有詳細的實例講解。‘類型進階’一章詳細解釋了我過去不懂的術語,而且展示了如何利用 TypeScript 提升代碼的安全性,同時保障代碼易於使用。”

——Sean Grove

OneGraph 聯合創始人


目錄

前言 1

第1 章 導言 9

第2 章 TypeScript 概述 . 13

2.1 編譯器 .13

2.2 類型繫統 15

TypeScript VS. JavaScript.16

2.3 代碼編輯器設置 20

2.3.1 tsconfig.json .20

2.3.2 tslint.json .22

2.4 index.ts 23

2.5 練習題 .24

第3 章 類型全解 26

3.1 類型術語 27

3.2 類型淺談 28

3.2.1 any .28

3.2.2 unknown 30

3.2.3 boolean 30

3.2.4 number .32

3.2.5 bigint .33

3.2.6 string 34

3.2.7 symbol .34

3.2.8 對像 .35

3.2.9 中場休息:類型別名、並集和交集.42

3.2.10 數組 .46

3.2.組 .48

3.2.12 null、undefined、void 和never .51

3.2.13 枚舉 .53

3.3 小結 .58

3.4 練習題 .58

第4 章 函數 60

4.1 聲明和調用函數 60

4.1.1 可選和默認的參數 .62

4.1.2 剩餘參數64

4.1.3 call、apply 和bind 65

4.1.4 注解this 的類型 66

4.1.5 生成器函數 68

4.1.6 迭代器 .70

4.1.7 調用簽名72

4.1.8 上下文類型推導 75

4.1.9 函數類型重載 76

4.2 多態 .83

4.2.1 什麼時候綁定泛型 .88

4.2.2 可以在什麼地方聲明泛型 .89

4.2.3 泛型推導91

4.2.4 泛型別名93

4.2.5 受限的多態 95

4.2.6 泛型默認類型 100

4.3 類型驅動開發 101

4.4 小結 .102

4.5 練習題 .103

第5 章 類和接口 104

5.1 類和繼承 104

5.2 super 110

5.3 以this 為返回類型 . 111

5.4 接口 . 113

5.4.1 聲明合並 115

5.4.2 實現 . 117

5.4.3 實現接口還是擴展抽像類 . 119

5.5 類是結構化類型 120

5.6 類既聲明值也聲明類型 .121

5.7 多態 .124

5.8 混入 .125

5.9 裝飾器 .129

5.10 模擬final 類 .132

5.11 設計模式 133

5.11.1 工廠模式 133

5.11.2 建造者模式 134

5.12 小結 .136

5.13 練習題 .136

第6 章 類型進階 138

6.1 類型之間的關繫 139

6.1.1 子類型和超類型 139

6.1.2 型變 .141

6.1.3 可賦值性148

6.1.4 類型拓寬149

6.1.5 細化 .154

6.2 全面性檢查 159

6.3 對像類型進階 161

6.3.1 對像類型的類型運算符 .161

6.3.2 Record 類型 .166

6.3.3 映射類型167

6.3.4 伴生對像模式 170

6.4 函數類型進階 171

6.4.1組的類型推導 .171

6.4.2 用戶定義的類型防護措施 .172

6.5 條件類型 174

6.5.1 條件分配175

6.5.2 infer 關鍵字 .177

6.5.3 內置的條件類型 178

6.6 解決辦法 179

6.6.1 類型斷言179

6.6.2 非空斷言180

6.6.3 明確賦值斷言 183

6.7 模擬名義類型 184

6.8 安全地擴展原型 187

6.9 小結 .189

6.10 練習題 .190

第7 章 處理錯誤 192

7.1 返回null 193

7.2 拋出異常 194

7.3 返回異常 197

7.4 Option 類型 199

7.5 小結 .206

7.6 練習題 .207

第8 章 異步編程、並發和並行 . 208

8.1 JavaScript 的事件循環 .209

8.2 處理回調 211

8.3 promise:讓一切回到正軌 214

8.4 async 和await 219

8.5 異步流 .220

事件發射器.221

8.6 多線程類型安全 224

8.6.1 在瀏覽器中:使用Web 職程.224

8.6.2 在NodeJS 中:使用子進程 .234

8.7 小結 .235

8.8 練習題 .236

第9 章 前後端框架 237

9.1 前端框架 237

9.1.1 React 239

9.1.2 Angular 6/7 246

9.2 類型安全的API .250

9.3 後端框架 252

9.4 小結 .253

第10 章 命名空間和模塊 254

10.1 JavaScript 模塊簡史 .255

10.2 import、export .258

10.2.1 動態導入 259

10.2.2 使用CommonJS 和AMD 模塊 262

10.2.3 模塊模式與腳本模式 .262

10.3 命名空間 263

10.3.1 衝突 .265

10.3.2 編譯輸出 266

10.4 聲明合並 268

10.5 小結 .269

10.6 練習題 .270

第11 章 與JavaScript 互操作 271

11.1 類型聲明 272

11.1.1 外參變量聲明 275

11.1.2 外參類型聲明 277

11.1.3 外參模塊聲明 278

11.2 逐步從JavaScript 遷移到TypeScript .280

11.2.1 第一步:添加TSC 280

11.2.2 第二步(上):對JavaScript 代碼做類型檢查(可選) 281

11.2.3 第二步(下):添加JSDoc 注解(可選) .283

11.2.4 第三步:把文件重命名為.ts .284

11.2.5 第四步:嚴格要求 .285

11.3 尋找JavaScript 代碼的類型信息 .286

11.4 使用第三方JavaScript .289

11.4.1 自帶類型聲明的JavaScript 289

11.4.2 DefinitelyTyped 中有類型聲明的JavaScript 290

11.4.3 DefinitelyTyped 中沒有類型聲明的JavaScript 290

11.5 小結 .292

第12 章 構建和運行TypeScript . 293

12.1 構建TypeScript 項目 .293

12.1.1 項目結構 293

12.1.2 構建產物 294

12.1.3 設置編譯目標 295

12.1.4 生成源碼映射 300

12.1.5 項目引用 300

12.1.6 監控錯誤 303

12.2 在服務器中運行TypeScript .304

12.3 在瀏覽器中運行TypeScript .304

12.4 把TypeScript 代碼發布到NPM 中 307

12.5 三斜線指令 308

12.5.1 types 指令 309

12.5.2 amd-module 指令 .310

12.6 小結 . 311

第13 章 總結 313

附錄A 類型運算符 . 315

附錄B 實用類型 317

附錄C 限定作用範圍的聲明 . 319

附錄D 為第三方JavaScript 模塊編寫聲明文件的

技巧 321

附錄E 三斜線指令 . 329

附錄F 安全相關的TSC 編譯器標志 . 331

附錄G TSX . 333


查看全部↓

前言/序言

本書適合各類程序員閱讀,例如JavaScript 專業工程師、C# 從業者、Java 擁護者、Python 愛好者、Ruby 偏愛者和Haskell 支持者。不管你使用什麼編程語言,隻要有一定的編程經驗,了解函數、變量、類和錯誤等基礎知識,就可以閱讀這本書。如果你使用過JavaScript,有文檔對像模型(DocumentObject Model,DOM)和網絡編程經驗,那就更好了。本書雖然沒有深入探討這些概念,但是將從這些方面舉例。如果你不熟悉這些概念,可能無法深入領會示例的意圖。

無論使用哪一門編程語言,我們都有共同的經歷。為了追查異常,我們一行一行分析代碼,找出問題所在,各個擊破。而TypeScript 能助我們一臂之力,它會自動檢查代碼,指出那些逃過我們眼睛的錯誤。

如果你沒使用過靜態類型語言也沒關繫。筆者將教你類型的知識,告訴你如何使用類型減少程序崩潰的可能、提升代碼的語義,便於多位工程師共同維護,也讓應用能惠及更多的用戶,能在多臺服務器上彈性伸縮。在行文上,筆者將力求淺顯易懂,以直觀、易記的方式講解相關概念,從實用角度出發,通過大量示例把抽像的問題講清楚。

與其他類型語言相比,TypeScript 的特點是非常注重實用。TypeScript 發明了一套全新的概念,保證代碼簡潔、準確,使編寫應用的過程充滿樂趣,更符合現代標準,也更安全。

內容結構

本書有兩個目的:一是深入講解TypeScript 語言的原理(理論層面);二是給出大量實用的建議,助你寫出更好的TypeScript 代碼(應用層面)。

前面說過,TypeScript 是一門注重實用的語言,理論與應用往往是聯繫在一起的。本書多數篇幅將穿插講解這兩方面,不過前幾章基本隻講理論,後幾章則幾乎隻說具體應用。

本書首先介紹編譯器、類型檢查器和類型的基礎知識。然後,分別說明TypeScript 中不同類型和類型運算符的作用和用法。掌握這些基礎之後,可以深入探討一些高級話題,比如TypeScript 最為復雜的類型繫統特性、錯誤處理和異步編程。最後,說明怎樣結合你最喜歡的框架(前端和後端)使用TypeScript,如何把現有的JavaScript 項目遷移到TypeScript,以及如何在生產環境下運行TypeScript 應用。

本書每章的末尾都有練習題,請你嘗試自己解答,這樣纔能更深入地領會所講的內容。練習題的參考答案在網上,地址為https://github.com/bcherny/programming-typescript-answers。

代碼風格

本書盡量一以貫之,使用同一種代碼風格。筆者采用的代碼風格有一部分帶有強烈的個人風格,例如:

? 隻在必要時使用分號。

? 使用兩個空格縮進。

? 在簡單的代碼片段中,或者程序的結構比細節重要時,使用簡短的名稱命名變量,例如a、f 或_。

本書使用的編程風格,有一部分也建議你采用。比如說:

? 應該使用最新的JavaScript 句法和特性(最新版JavaScript 通常稱為“esnext”)。這樣能讓代碼符合最新的標準,提升代碼的互操作性,便於搜索,也能減少新員工的前期投入時間。此外,還可以充分利用JavaScript 的新特性,例如箭頭函數、promise 和生成器。

? 盡量使用展開運算符(...),保持數據結構不可變。注1

? 所有值都要有類型,不過盡量推導而出。切記不要濫用顯式類型,讓類型錯誤暴露出來,從而保證代碼簡潔、增加安全。

? 保證代碼的可用性和普適性。多態(見4.2 節)是個有力的工具。

當然,這些思想都是全新的。不過,沿用這些風格對TypeScript 的正常運作有至關重要的作用。TypeScript 內置的下層編譯器支持隻讀類型,有強大的類型推導功能,深置對多態的支持,而且具有完整的結構化類型繫統,這些都促使我們使用良好的編程風格。與底層的JavaScript 相比,TypeScript 在語言層面上仍不失表現力和真實性。

在進入正文之前,還有幾點要說明。

JavaScript 沒有指針和引用的概念,有的隻是值和引用類型。值是不可變的,包括字符串、數字和布爾值;而引用通常指向可變的數據結構,例如數組、對像和函數。本書中出現的“值”,一般不使用它的嚴格定義,而是指JavaScript 值或引用。

注1: 以防你沒接觸過 JavaScript,舉個例子:假如有個對像 o ,我們想為該對像添加一個值為3 的屬性 k;為此,可以直接修改 o,使用o.k = 3 句法,也可以使用 let p ={...o, k: 3} 句法,新建一個對像。

最後,在與JavaScript 互操作時,使用未嚴格遵守類型規定的第三方庫時,維護舊代碼或匆匆上手時,很容易寫出不太理想的TypeScript 代碼。本書的主要目的是教你如何正確編寫TypeScript,告誡你一定要遵守規則。但在實際中,怎麼編寫代碼纔算正確要看你自己或你的團隊。

本書約定

本書采用下述排版約定。

斜體(Italic)

表示新術語、URL、電子郵件地址、文件名和擴展名。

等寬字體(Constant Width)

表示程序清單,在段落中出現則表素,例如變量、函數名、數據類型、環境變量、語句和關鍵字。

斜體等寬字體(Constant Width Italic)

表示應該替換成用戶提供的值,或者由上下文決定的值。

使用代碼示例

本書的補充材料(代碼示例、練習題等)可到https://github.com/bcherny/programming-typescript-answers 下載。

本書是幫你完成工作的。一般來說,如果本書提供了示例代碼,你可以把它用在你的程序或文檔中。除非你使用了很大一部分代碼,否則無需獲得許可。比如,用本書的幾個代碼片段寫一個程序就無需獲得許可,銷售或分發O’Reilly 圖書的示例光盤則需要獲得許可;引用本書中的示例代碼回答問題無需獲得許可,將書中大量的代碼放到你的產品文檔中則需要獲得許可。

我們很希望但並不強制要求你在引用本書內容時加上引用說明。引用說明一般包括書名、作者、出版社和ISBN。比如:“Programming TypeScript by Boris Cherny (O’Reilly). Copyright 2019 Boris Cherny, 978-1-492-03765-1.”。

如果你覺得自己對示例代碼的用法超出了上述許可的範圍, 請通過

permissions@oreilly.com 與我們聯繫。

O’Reilly Online Learning

40 年間,O’Reilly Media 為眾多公司提供技術和商業培

訓,提升知識儲備和洞察力,為企業的成功助力。

我們有一群獨家專家和創新者,他們通過圖書、文章、會議和在線學習平臺分享知識和技術。O’Reilly 的在線學習平臺提供按需訪問的直播培訓課程、詳細的學習路徑、交互式編程環境,以及由O’Reilly 和其他200 多家出版社出版的書籍和視頻。詳情請訪問http://oreilly.com。

聯繫我們

任何有關本書的意見或疑問,請按照以下地址聯繫出版社。

美國:

O’Reilly Media, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

中國:

北京市西城區西直門南大街2 號成銘大廈C 座807 室(100035)

奧萊利技術咨詢(北京)有限公司

勘誤、示例和其他信息可到https://oreil.ly/programming-typescript 上獲取。

對本書的評論或技術疑問,可以發電子郵件到bookquestions@oreilly.com。

欲了解本社圖書、課程、會議和新聞等更多信息,請訪問我們的網站http://www.oreilly.com。

我們的Facebook:http://facebook.com/oreilly。

我們的Twitter:http://twitter.com/oreillymedia。

我們的YouTube:http://www.youtube.com/oreillymedia。

致謝

幾年間斷斷續續的寫作和塗塗畫畫,加上一年的早起晚睡,以及周末和節假日的奮筆疾書,這本書纔得以出版。

感謝O’Reilly 策劃這樣一本書,感謝編輯Angela Rufino 在整個過程中給予我的支持。感謝Nick Nance 對9.2 節的貢獻,感謝Shyam Seshadri 對9.1.2 節的貢獻。感謝技術編輯Daniel Rosenwasser,他是TypeScript 團隊的一員,用了很多時間閱讀草稿,指導我弄清了TypeScript 類型繫統的方方面面。感謝Jonathan Creamer、Yakov Fain、Paul Buying 和Rachel Head 對本書做技術編輯、提供反饋。感謝我的家人Liza、Ilya、Vadim、Roza、Alik、Faina 和Yosif,感謝他們鼓勵纔能使我堅持完成這個項目。

感謝我的伴侶Sara Gilford,在撰寫本書的過程中她始終支持我,即使取消了周末計劃、寫作和編程到深夜,她也沒有怨言,而且主動與我討論類型繫統的復雜細節。如果沒有你,我不可能寫完這本書,你的支持讓我銘記終生。


查看全部↓



"
 
網友評論  我們期待著您對此商品發表評論
 
相關商品
在線留言 商品價格為新臺幣
關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
返回頂部