![]()
内容推荐 TypeScript是JavaScript的类型化超集,有可能解决JavaScript的许多著名的让人头疼的问题。但是TypeScript也有自己的学习曲线,同时了解如何有效地使用它也需要时间和实践。本书采用了《Effective C++》和《Effective Java》(均由Addison-Wesley出版社出版)所流行的格式,这本实用的书提供了62个实践方法,给出了包括什么该做,什么不该做,以及如何思考这门语言的具体建议。 本书作者Dan Vanderkam是Sidewalk Labs的首席软件工程师,他通过具体的例子向你展示了如何应用每个条款的建议。本书将帮助你从一个熟悉TypeScript基础知识的初级或中级用户晋升为一个知道如何使用好这门语言的专家。 作者简介 丹·范德卡姆Dan Vanderkam是Sidewalk Labs的首席软件工程师,也是TypeScript NYC Meetup的联合创始人。作为开源项目的长期贡献者,他此前曾在西纳山的伊坎医学院工作,并在谷歌负责数十亿用户使用的搜索功能。 目录 前言 第1章 了解TypeScript 条款1:理解TypeScript与JavaScript的关系 要记住的事情 条款2:知道你在使用哪个TypeScript选项 要记住的事情 条款3:理解代码的生成是独立于类型的 类型错误的代码仍会产生输出 你无法在运行时检查TypeScript类型 类型操作不能影响运行时的值 运行时类型可能与声明类型不一样 你不能基于TypeScript类型来重载一个函数 TypeScript类型对运行时的性能没有影响 要记住的事情 条款4:习惯结构类型(Structural Typing) 要记住的事情 条款5:限制使用any类型any类型没有类型安全 any 类型会让你打破契约 any类型没有语言服务 any类型会掩盖重构代码时的错误 any类型遮蔽了你的类型设计 any类型破坏了你对类型系统的信心 要记住的事情 第2章 TypeScript的类型系统 条款6:使用你的编辑器来询问和探索类型系统 要记住的事情 条款7:将类型视为价值的集合 要记住的事情 条款8:知道如何分辨符号是类型空间还是值空间 要记住的事情 条款9:优先选择类型声明而不是类型断言 要记住的事情 条款10:避免对象包装类(String,Number,Boolean,Symbol,BigInt) 要记住的事情 条款11:认识额外属性检查的局限性 要记住的事情 条款12:尽可能将类型应用于整个函数表达式 要记住的事情 条款13:了解类型(type)和接口(interface)的区别 要记住的事情 条款14:使用类型操作和泛型来避免重复自己的工作 要记住的事情 条款15:为动态数据使用索引签名 要记住的事情 条款16:优先选择Array、Tuple和ArrayLike,而不是数字索引签名 要记住的事情 条款17:使用readonly 避免值变(Mutation)相关的错误 要记住的事情 条款18:使用映射类型来保持值的同步 要记住的事情 第3章 类型推断 条款19:避免你的代码被可推断类型弄得混乱不堪 要记住的事情 条款20:不同的类型使用不同的变量 要记住的事情 条款21:理解类型扩展 要记住的事情 条款22:理解类型收缩 要记住的事情 条款23:一次性构建对象 要记住的事情 条款24:在使用别名时要保持一致 要记住的事情 条款25:使用async函数代替异步代码的回调 要记住的事情 条款26:了解类型推断中如何使用上下文 元组类型 对象 回调 要记住的事情 条款27:使用函数式构造和库来帮助类型流转 要记住的事情 第4章 类型设计 条款28:倾向选择总是代表有效状态的类型 要记住的事情 条款29:宽进严出 要记住的事情 条款30:不要在文档中重复类型信息 要记住的事情 条款31:将空值推到你的类型边界上 要记住的事情 条款32:优选接口的联合,而不是联合的接口 要记住的事情 条款33:选择更精确的字符串类型的替代类型 要记住的事情 条款34:宁愿选择不完整的类型,也不选择不准确的类型 要记住的事情 条款35:从API和规范而不是从数据中生成类型 要记住的事情 条款36:使用你的问题域语言命名类型 要记住的事情 条款37:考虑加“烙印”来实现名义类型 要记住的事情 第5章 和Any一起工作 条款38:为Any类型使用最窄的范围 要记住的事情 条款39:比起普通的any,选择更精确的any变体 要记住的事情 条款40:在类型良好的函数中隐藏不安全的类型断言 要记住的事情 条款41:理解any演变 要记住的事情 条款42:对未知类型的值使用unknown而不是any 要记住的事情 条款43:选择类型安全的方法而不是猴子补丁 要记住的事情 条款44:追踪你的类型覆盖率以防止类型安全中的回归问题 要记住的事情 第6章 类型声明和@types 条款45:把TypeScript和@types放在devDependencies中 要记住的事情 条款46:了解类型声明中涉及的三个版本 要记住的事情 条款47:导出所有出现在公有API中的类型 要记住的事情 条款48:使用TSDoc来编写API注释 要记住的事情 条款49:提供回调中this的类型 要记住的事情 条款50:优先选择条件类型,而不是重载声明 要记住的事情 条款51:反映类型以切断依赖 要记住的事情 条款52:警惕测试类型时的陷阱 要记住的事情 第7章 编写和运行你的代码 条款53:使用ECMAScript特性,而非TypeScript特性 枚举 参数属性 命名空间和三斜线导入 装饰器 要记住的事情 条款54:了解如何迭代对象 要记住的事情 条款55:了解DOM的层次结构 要记住的事情 条款56:不要依赖私有访问修饰符(private)来隐藏信息 要记住的事情 条款57:使用Source Maps来调试TypeScript |