注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)Effective TypeScript:精進(jìn)TypeScript代碼的62個(gè)實(shí)踐方法

Effective TypeScript:精進(jìn)TypeScript代碼的62個(gè)實(shí)踐方法

Effective TypeScript:精進(jìn)TypeScript代碼的62個(gè)實(shí)踐方法

定 價(jià):¥98.00

作 者: [美] 丹范德卡姆(Dan Vanderkam) 著,王瑞鵬,董強(qiáng) 譯
出版社: 中國電力出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787519859381 出版時(shí)間: 2021-11-01 包裝: 平裝
開本: 16開 頁數(shù): 320 字?jǐn)?shù):  

內(nèi)容簡介

  ·學(xué)習(xí)TypeScript的類型系統(tǒng)的基本內(nèi)容。 ·設(shè)計(jì)類型,讓你的代碼更安全,更易懂。 ·使用類型推斷,用最少的類型標(biāo)注來獲得完全的安全。 ·戰(zhàn)術(shù)性利用any類型。 ·了解TypeScript中的依賴關(guān)系和類型聲明文件是如何工作的。 ·將你的JavaScript代碼庫成功地遷移到 TypeScript。

作者簡介

  Dan Vanderkam是Sidewalk Labs的首席軟件工程師,也是TypeScript NYC Meetup的聯(lián)合創(chuàng)始人。作為開源項(xiàng)目的長期貢獻(xiàn)者,他此前曾在西納山的伊坎醫(yī)學(xué)院工作,并在谷歌負(fù)責(zé)數(shù)十億用戶使用的搜索功能。

圖書目錄

目錄
前言 .1
第1 章 了解TypeScript 11
條款1:理解 TypeScript 與 JavaScript 的關(guān)系 11
要記住的事情 18
條款2:知道你在使用哪個(gè) TypeScript 選項(xiàng) 18
要記住的事情 22
條款3:理解代碼的生成是獨(dú)立于類型的 . 22
類型錯(cuò)誤的代碼仍會(huì)產(chǎn)生輸出 23
你無法在運(yùn)行時(shí)檢查 TypeScript 類型 24
類型操作不能影響運(yùn)行時(shí)的值 26
運(yùn)行時(shí)類型可能與聲明類型不一樣 . 27
你不能基于 TypeScript 類型來重載一個(gè)函數(shù) . 28
TypeScript 類型對運(yùn)行時(shí)的性能沒有影響 29
要記住的事情 30
條款4:習(xí)慣結(jié)構(gòu)類型(Structural Typing). 30
要記住的事情 35
條款5:限制使用any 類型 35
any 類型沒有類型安全 36
any 類型會(huì)讓你打破契約 36
any 類型沒有語言服務(wù) 37
any 類型會(huì)掩蓋重構(gòu)代碼時(shí)的錯(cuò)誤 38
any 類型遮蔽了你的類型設(shè)計(jì) . 39
any 類型破壞了你對類型系統(tǒng)的信心 40
要記住的事情 40
第2 章 TypeScript 的類型系統(tǒng) 41
條款6:使用你的編輯器來詢問和探索類型系統(tǒng) 41
要記住的事情 46
條款7:將類型視為價(jià)值的集合 . 46
要記住的事情 53
條款8:知道如何分辨符號是類型空間還是值空間 . 54
要記住的事情 60
條款9:優(yōu)先選擇類型聲明而不是類型斷言 60
要記住的事情 64
條款10:避免對象包裝類(String,Number,Boolean,Symbol,BigInt) 64
要記住的事情 68
條款11:認(rèn)識額外屬性檢查的局限性 . 68
要記住的事情 72
條款12:盡可能將類型應(yīng)用于整個(gè)函數(shù)表達(dá)式 . 72
要記住的事情 75
條款13:了解類型(type)和接口(interface)的區(qū)別 75
要記住的事情 81
條款14:使用類型操作和泛型來避免重復(fù)自己的工作 81
要記住的事情 90
條款15:為動(dòng)態(tài)數(shù)據(jù)使用索引簽名 . 91
要記住的事情 95
條款16:優(yōu)先選擇 Array、Tuple 和 ArrayLike,而不是數(shù)字索引簽名. 95
要記住的事情 99
條款17:使用 readonly 避免值變(Mutation)相關(guān)的錯(cuò)誤. 99
要記住的事情 107
條款18:使用映射類型來保持值的同步 . 107
要記住的事情 110
第3 章 類型推斷 111
條款19:避免你的代碼被可推斷類型弄得混亂不堪 112
要記住的事情 119
條款20:不同的類型使用不同的變量 119
要記住的事情 122
條款21:理解類型擴(kuò)展 122
要記住的事情 126
條款22:理解類型收縮 127
要記住的事情 130
條款23:一次性構(gòu)建對象 131
要記住的事情 134
條款24:在使用別名時(shí)要保持一致 134
要記住的事情 138
條款25:使用async 函數(shù)代替異步代碼的回調(diào) 138
要記住的事情 144
條款26:了解類型推斷中如何使用上下文 144
元組類型 . 146
對象 148
回調(diào) 148
要記住的事情 149
條款27:使用函數(shù)式構(gòu)造和庫來幫助類型流轉(zhuǎn) 150
要記住的事情 155
第4 章 類型設(shè)計(jì) 156
條款28:傾向選擇總是代表有效狀態(tài)的類型 156
要記住的事情 162
條款29:寬進(jìn)嚴(yán)出 163
要記住的事情 166
條款30:不要在文檔中重復(fù)類型信息 167
要記住的事情 169
條款31:將空值推到你的類型邊界上 169
要記住的事情 173
條款32:優(yōu)選接口的聯(lián)合,而不是聯(lián)合的接口 173
要記住的事情 177
條款33:選擇更精確的字符串類型的替代類型 178
要記住的事情 182
條款34:寧愿選擇不完整的類型,也不選擇不準(zhǔn)確的類型 . 183
要記住的事情 187
條款35:從 API 和規(guī)范而不是從數(shù)據(jù)中生成類型 . 188
要記住的事情 194
條款36:使用你的問題域語言命名類型 . 194
要記住的事情 197
條款37:考慮加“烙印”來實(shí)現(xiàn)名義類型 197
要記住的事情 201
第5 章 和 Any 一起工作. 202
條款38:為 Any 類型使用最窄的范圍 . 202
要記住的事情 205
條款39:比起普通的 any,選擇更精確的 any 變體 . 205
要記住的事情 207
條款40:在類型良好的函數(shù)中隱藏不安全的類型斷言 207
要記住的事情 210
條款41:理解 any 演變 210
要記住的事情 214
條款42:對未知類型的值使用 unknown 而不是 any 214
要記住的事情 218
條款43:選擇類型安全的方法而不是猴子補(bǔ)丁 218
要記住的事情 221
條款44:追蹤你的類型覆蓋率以防止類型安全中的回歸問題 221
要記住的事情 224
第6 章 類型聲明和 @types 225
條款45:把 TypeScript 和 @types 放在 devDependencies 中 225
要記住的事情 227
條款46:了解類型聲明中涉及的三個(gè)版本 228
要記住的事情 232
條款47:導(dǎo)出所有出現(xiàn)在公有 API 中的類型 232
要記住的事情 233
條款48:使用 TSDoc 來編寫 API 注釋 234
要記住的事情 237
條款49:提供回調(diào)中 this 的類型 237
要記住的事情 242
條款50:優(yōu)先選擇條件類型,而不是重載聲明 242
要記住的事情 245
條款51:反映類型以切斷依賴 . 245
要記住的事情 246
條款52:警惕測試類型時(shí)的陷阱 247
要記住的事情 252
第7 章 編寫和運(yùn)行你的代碼 . 253
條款53:使用 ECMAScript 特性,而非 TypeScript 特性 253
枚舉 254
參數(shù)屬性 . 256
命名空間和三斜線導(dǎo)入 258
裝飾器 258
要記住的事情 259
條款54:了解如何迭代對象 259
要記住的事情 262
條款55:了解 DOM 的層次結(jié)構(gòu) . 262
要記住的事情 269
條款56:不要依賴私有訪問修飾符(private) 來隱藏信息 269
要記住的事情 272
條款57:使用 Source Maps 來調(diào)試 TypeScript 272
要記住的事情 276
第8 章 遷移到TypeScript . 277
條款58:編寫現(xiàn)代 JavaScript 278
使用 ECMAScript 模塊 279
使用類而不是原型 . 279
使用 let/const 代替 var . 281
使用 for-of 或數(shù)組方法代替 for(;;) 282
優(yōu)先選擇箭頭函數(shù)而不是函數(shù)表達(dá)式 282
使用對象字面量的簡寫形式和解構(gòu)賦值 . 283
使用默認(rèn)函數(shù)參數(shù) . 285
使用 async/await 代替原始的 Promise 或 Callback 286
不要把 use strict 放在 TypeScript 中 . 287
要記住的事情 288
條款59:使用 @ts-check 和 JSDoc 來嘗試 TypeScript 288
未聲明的全局變量 . 289
未知的庫 . 289
DOM 問題 290
不準(zhǔn)確的 JSDoc 291
要記住的事情 293
條款60:通過 allowJs 混合使用 TypeScript、JavaScript 293
要記住的事情 295
條款61:將模塊逐個(gè)轉(zhuǎn)換到依賴關(guān)系圖上 295
未聲明的類成員 296
類型不斷變化的值 . 298
要記住的事情 300
條款62:在啟用 noImplicitAny 之前,不要認(rèn)為遷移已經(jīng)完成 . 301
要記住的事情 302

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號