• Effective TypeScript:精进TypeScript代码的62个实践方法
21年品牌 40万+商家 超1.5亿件商品

Effective TypeScript:精进TypeScript代码的62个实践方法

15.6 1.6折 98 九品

仅1件

天津宝坻
认证卖家担保交易快速发货售后保障

作者[美]丹·范德卡姆(Dan Vanderkam);王瑞鹏;董强

出版社中国电力出版社

出版时间2021-11

版次1

装帧其他

货号1554871199220111997

上书时间2024-12-20

转转超品的书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九品
图书标准信息
  • 作者 [美]丹·范德卡姆(Dan Vanderkam);王瑞鹏;董强
  • 出版社 中国电力出版社
  • 出版时间 2021-11
  • 版次 1
  • ISBN 9787519859381
  • 定价 98.00元
  • 装帧 其他
  • 开本 16开
  • 纸张 胶版纸
  • 页数 320页
  • 字数 417.000千字
【内容简介】
学习TypeScript的类型系统的基本内容。
  设计类型,让你的代码更安全,更易懂。
  使用类型推断,用少的类型标注来获得完全的安全。
  战术性利用any类型。
  了解TypeScript中的依赖关系和类型声明文件是如何工作的。
  将你的JavaScript代码库成功地迁移到 TypeScript。
【作者简介】
Dan Vanderkam是Sidewalk Labs的首席软件工程师,也是TypeScript NYC Meetup的联合创始人。作为开源项目的长期贡献者,他此前曾在西纳山的伊坎医学院工作,并在谷歌负责数十亿用户使用的搜索功能。
【目录】
目录

前言 .1

第1 章 了解TypeScript 11

条款1:理解 TypeScript 与 JavaScript 的关系 11

要记住的事情 18

条款2:知道你在使用哪个 TypeScript 选项 18

要记住的事情 22

条款3:理解代码的生成是独立于类型的 . 22

类型错误的代码仍会产生输出 23

你无法在运行时检查 TypeScript 类型 24

类型操作不能影响运行时的值 26

运行时类型可能与声明类型不一样 . 27

你不能基于 TypeScript 类型来重载一个函数 . 28

TypeScript 类型对运行时的性能没有影响 29

要记住的事情 30

条款4:习惯结构类型(Structural Typing). 30

要记住的事情 35

条款5:限制使用any 类型 35

any 类型没有类型安全 36

any 类型会让你打破契约 36

any 类型没有语言服务 37

any 类型会掩盖重构代码时的错误 38

any 类型遮蔽了你的类型设计 . 39

any 类型破坏了你对类型系统的信心 40

要记住的事情 40

第2 章 TypeScript 的类型系统 41

条款6:使用你的编辑器来询问和探索类型系统 41

要记住的事情 46

条款7:将类型视为价值的集合 . 46

要记住的事情 53

条款8:知道如何分辨符号是类型空间还是值空间 . 54

要记住的事情 60

条款9:优先选择类型声明而不是类型断言 60

要记住的事情 64

条款10:避免对象包装类(String,Number,Boolean,Symbol,BigInt) 64

要记住的事情 68

条款11:认识额外属性检查的局限性 . 68

要记住的事情 72

条款12:尽可能将类型应用于整个函数表达式 . 72

要记住的事情 75

条款13:了解类型(type)和接口(interface)的区别 75

要记住的事情 81

条款14:使用类型操作和泛型来避免重复自己的工作 81

要记住的事情 90

条款15:为动态数据使用索引签名 . 91

要记住的事情 95

条款16:优先选择 Array、Tuple 和 ArrayLike,而不是数字索引签名. 95

要记住的事情 99

条款17:使用 readonly 避免值变(Mutation)相关的错误. 99

要记住的事情 107

条款18:使用映射类型来保持值的同步 . 107

要记住的事情 110

第3 章 类型推断 111

条款19:避免你的代码被可推断类型弄得混乱不堪 112

要记住的事情 119

条款20:不同的类型使用不同的变量 119

要记住的事情 122

条款21:理解类型扩展 122

要记住的事情 126

条款22:理解类型收缩 127

要记住的事情 130

条款23:一次性构建对象 131

要记住的事情 134

条款24:在使用别名时要保持一致 134

要记住的事情 138

条款25:使用async 函数代替异步代码的回调 138

要记住的事情 144

条款26:了解类型推断中如何使用上下文 144

元组类型 . 146

对象 148

回调 148

要记住的事情 149

条款27:使用函数式构造和库来帮助类型流转 150

要记住的事情 155

第4 章 类型设计 156

条款28:倾向选择总是代表有效状态的类型 156

要记住的事情 162

条款29:宽进严出 163

要记住的事情 166

条款30:不要在文档中重复类型信息 167

要记住的事情 169

条款31:将空值推到你的类型边界上 169

要记住的事情 173

条款32:优选接口的联合,而不是联合的接口 173

要记住的事情 177

条款33:选择更精确的字符串类型的替代类型 178

要记住的事情 182

条款34:宁愿选择不完整的类型,也不选择不准确的类型 . 183

要记住的事情 187

条款35:从 API 和规范而不是从数据中生成类型 . 188

要记住的事情 194

条款36:使用你的问题域语言命名类型 . 194

要记住的事情 197

条款37:考虑加“烙印”来实现名义类型 197

要记住的事情 201

第5 章 和 Any 一起工作. 202

条款38:为 Any 类型使用窄的范围 . 202

要记住的事情 205

条款39:比起普通的 any,选择更精确的 any 变体 . 205

要记住的事情 207

条款40:在类型良好的函数中隐藏不安全的类型断言 207

要记住的事情 210

条款41:理解 any 演变 210

要记住的事情 214

条款42:对未知类型的值使用 unknown 而不是 any 214

要记住的事情 218

条款43:选择类型安全的方法而不是猴子补丁 218

要记住的事情 221

条款44:追踪你的类型覆盖率以防止类型安全中的回归问题 221

要记住的事情 224

第6 章 类型声明和 @types 225

条款45:把 TypeScript 和 @types 放在 devDependencies 中 225

要记住的事情 227

条款46:了解类型声明中涉及的三个版本 228

要记住的事情 232

条款47:导出所有出现在公有 API 中的类型 232

要记住的事情 233

条款48:使用 TSDoc 来编写 API 注释 234

要记住的事情 237

条款49:提供回调中 this 的类型 237

要记住的事情 242

条款50:优先选择条件类型,而不是重载声明 242

要记住的事情 245

条款51:反映类型以切断依赖 . 245

要记住的事情 246

条款52:警惕测试类型时的陷阱 247

要记住的事情 252

第7 章 编写和运行你的代码 . 253

条款53:使用 ECMAScript 特性,而非 TypeScript 特性 253

枚举 254

参数属性 . 256

命名空间和三斜线导入 258

装饰器 258

要记住的事情 259

条款54:了解如何迭代对象 259

要记住的事情 262

条款55:了解 DOM 的层次结构 . 262

要记住的事情 269

条款56:不要依赖私有访问修饰符(private) 来隐藏信息 269

要记住的事情 272

条款57:使用 Source Maps 来调试 TypeScript 272

要记住的事情 276

第8 章 迁移到TypeScript . 277

条款58:编写现代 JavaScript 278

使用 ECMAScript 模块 279

使用类而不是原型 . 279

使用 let/const 代替 var . 281

使用 for-of 或数组方法代替 for(;;) 282

优先选择箭头函数而不是函数表达式 282

使用对象字面量的简写形式和解构赋值 . 283

使用默认函数参数 . 285

使用 async/await 代替原始的 Promise 或 Callback 286

不要把 use strict 放在 TypeScript 中 . 287

要记住的事情 288

条款59:使用 @ts-check 和 JSDoc 来尝试 TypeScript 288

未声明的全局变量 . 289

未知的库 . 289

DOM 问题 290

不准确的 JSDoc 291

要记住的事情 293

条款60:通过 allowJs 混合使用 TypeScript、JavaScript 293

要记住的事情 295

条款61:将模块逐个转换到依赖关系图上 295

未声明的类成员 296

类型不断变化的值 . 298

要记住的事情 300

条款62:在启用 noImplicitAny 之前,不要认为迁移已经完成 . 301

要记住的事情 302
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP