搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Effective TypeScript:精进TypeScript代码的62个实践方法
0.00     定价 ¥ 98.00
图书来源: 浙江图书馆(由JD配书)
此书还可采购24本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787519859381
  • 作      者:
    [美]丹范德卡姆(Dan,Vanderkam)
  • 译      者:
    王瑞鹏,董强
  • 出 版 社 :
    中国电力出版社
  • 出版日期:
    2021-11-01
收藏
作者简介

 

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

展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证