-
内容大纲
TypeScript是JavaScript开发人员最重要的工具之一。然而,即便是经验丰富的开发人员,也会疑惑TypeScript编译器为什么输出红色波浪线。阅读本书吧!在这本实用指南中,作者Stefan Baumgartner为高级工程师提供了TypeScript日常问题的解决方案。
本书为熟悉JavaScript和TypeScript基础知识的开发人员提供了一些切实可行的方案,有助于解决各种问题。书中的经典实例自成一体,涵盖设置复杂的项目结构和开发高级辅助类型,详细分析问题并讨论方案背后的原理和具体措施。
本书是你在TypeScript进阶旅程中不可缺少的伴侣,涵盖以下话题:
深入研究TypeScript类型系统的内部工作原理。
将TypeScript集成到各种项目中。
定义高级类型,灵活适应不同场景。
创建跨项目可用的辅助类型。
确保可读性和类型安全性。
有效地为依赖字符串字面量的函数签名定义类型。
解决标准库的限制。
将TypeScript集成到复杂的React项目中。
运用类型开发策略,包括类型测试。
识别类型系统对规则做出例外处理的情况。 -
作者介绍
斯蒂芬·鲍姆加特纳是oida dev的Rust和TypeScript独立培训师,也是Dynatrace的高级产品架构师,主管TypeScript开发工具、库和语言运行时的开发工作。他在热门博客fettblog.eu上撰写有关TypeScript的文章,2020年在Smashing Magazine上出版了他的第一本TypeScript著作TypeScript in 50 Lessons。 -
目录
序
前言
第1章 项目配置
1.1 JavaScript类型检查
1.2 安装TypeScript
1.3 把类型放在一旁
1.4 将项目迁移到TypeScript
1.5 从Definitely Typed加载类型
1.6 设置全栈项目
1.7 设置测试
1.8 从URL获取ECMAScript模块的类型
1.9 在Node中加载不同类型的模块
1.10 使用Deno及其依赖
1.11 使用预定义配置
第2章 基本类型
2.1 有效注解
2.2 使用any和unknown
2.3 选择正确的对象类型
2.4 使用元组类型
2.5 区别接口和类型别名
2.6 定义函数重载
2.7 定义this参数类型
2.8 使用符号
2.9 理解值和类型命名空间
第3章 类型系统
3.1 使用联合类型和交叉类型建模数据
3.2 使用可区分联合类型显式定义模型
3.3 使用断言never技术穷尽检查
3.4 使用常量上下文固定类型
3.5 使用类型谓词收窄类型
3.6 理解void
3.7 在catch子句中处理错误类型
3.8 使用可选never创建互斥模型
3.9 有效使用类型断言
3.10 使用索引签名
3.11 区分缺失属性和未定义值
3.12 使用枚举
3.13 在结构类型系统中定义名义类型
3.14 为字符串子集启用宽松的自动补全
第4章 泛型
4.1 泛化函数签名
4.2 创建有关联的函数参数
4.3 摆脱any和unknown
4.4 理解泛型实例化
4.5 生成新对象类型
4.6 使用断言签名修改对象
4.7 使用类型映射来映射类型
4.8 使用ThisType定义对象中的this
4.9 为泛型类型参数添加常量上下文
第5章 条件类型
5.1 管理复杂的函数签名
5.2 使用never过滤
5.3 按种类分组元素
5.4 移除对象的特定属性
5.5 推导条件中的类型
第6章 字符串模板字面类型
6.1 自定义事件系统
6.2 使用字符串操作类型和键重映射创建事件回调
6.3 编写格式化函数
6.4 提取格式参数类型
6.5 处理递归限制
6.6 把模板字面量用作判别属性
第7章 可变元组类型
7.1 为concat函数定义类型
7.2 为promisify函数定义类型
7.3 为curry函数定义类型
7.4 为灵活的curry函数定义类型
7.5 为最简单的curry函数定义类型
7.6 从元组创建枚举
7.7 拆分函数签名的所有元素
第8章 辅助类型
8.1 把特定属性设为可选
8.2 修改嵌套对象
8.3 重映射类型
8.4 获取所有必需的键
8.5 至少设定一个属性
8.6 仅设定一个属性,以及全部设定或全不设定
8.7 把联合类型转换为交叉类型
8.8 使用type-fest
第9章 标准库和外部类型定义
9.1 使用Object.keys遍历对象
9.2 通过类型断言和unknown突出不安全操作
9.3 使用defineProperty
9.4 扩展Array.prototype.includes的类型
9.5 过滤空值
9.6 扩展模块
9.7 增强全局命名空间
9.8 将非JS模块添加到模块图
第10章 TypeScript和React
10.1 编写代理组件
10.2 编写受控组件
10.3 为自定义钩子定义类型
10.4 为泛化forwardRef组件定义类型
10.5 为上下文API提供类型
10.6 为高阶组件定义类型
10.7 为React合成事件系统中的回调定义类型
10.8 为多态组件定义类型
第11章 类
11.1 选择合适的可见性修饰符
11.2 显式定义方法覆盖
11.3 描述构造函数和原型
11.4 在类中使用泛型
11.5 决定何时使用类或命名空间
11.6 编写静态类
11.7 严格的属性初始化
11.8 在类中使用this类型
11.9 编写装饰器
第12章 类型开发策略
12.1 编写低维护量类型
12.2 逐步完善类型
12.3 使用satisfies检查契约
12.4 测试复杂类型
12.5 使用Zod在运行时验证数据类型
12.6 解决索引访问限制
12.7 使用函数重载还是条件类型
12.8 泛型的名称
12.9 在TypeScript Playground中设计原型
12.10 提供库的多个版本
12.11 适可而止
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-

孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-

时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-

本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...
[
