欢迎光临澳大利亚新华书店网 [登录 | 免费注册]

    • Effective TypeScript(精进TypeScript代码的83个实践方法第2版)
      • 作者:(美)丹·范德卡姆|责编:刘炽|译者:侯璐璐//马建勋//娄麒麟
      • 出版社:中国电力
      • ISBN:9787523904930
      • 出版日期:2025/11/01
      • 页数:483
    • 售价:59.2
  • 内容大纲

        TypeScript作为JavaScript的类型化超集,以其独特禀赋化解了JavaScript诸多为人诟病的痼疾。然而,其学习门槛颇为陡峭,唯有经年累月的实践方能洞悉个中奥妙。本书承袭《Effectiye C++》与《Effective Java》的经典范式,以务实风格呈现了83条精要准则,于进退取舍间勾勒出驾驭这门语言的智慧图谱。
        本书作者通过详尽的实例演示,让每一条建议都蕴含着实战的气息。无论你是初窥门径的新手,还是已有根基的中阶开发人员,本书都将引领你突破TypeScript的认知边界,蜕变为深谙其道的语言大师。
        新版内容特别针对TypeScript 5进行了重构,增补了类型级编程和TypeScript指南两大篇章。
        解析TypeScript类型系统的运作机理,领会核心精髓。
        善用类型推断,以最简注解构筑周全的类型防护壁垒。
        精研类型设计之道,铸就安全性与可读性兼具的代码基底。
        活用泛型与类型级编程,建模复杂接口模型。
        解析依赖关系与声明文件,驾驭模块化工程的隐秘脉络。
        制定JavaScript向TypeScript的渐进迁移方略,实现工程的平稳演进。
  • 作者介绍

        丹·范德卡姆,独立软件工程师,TypeScript领域深耕多年的实践者、布道者与生态共建者。他历任Sidewalk Labs首席软件工程师、谷歌首席 软件工程师,工作成果服务了全球数十亿的搜索用户。
  • 目录

    前言
    第一版前言
    第1章 认识TypeScript
      条款1:TypeScript与JavaScript
      条款2:了解常用的编译选项
      条款3:代码生成独立于类型
      条款4:结构类型的自由度
      条款5:使用any要慎重
    第2章 TypeScript的类型系统
      条款6:借助编辑器探索类型世界
      条款7:值的集合即类型
      条款8:类型空间与值空间
      条款9:类型注解胜于类型断言
      条款10:避免使用对象类型(String、Number、Boolean、Symbol、BigInt)
      条款11:多余属性检查和类型检查
      条款12:函数整体声明类型更安全
      条款13:type别名与interface
      条款14:使用readonly守护不可变值
      条款15:类型操作配泛型,避免重复造轮子
      条款16:类型要精准,索引签名请慎用
      条款17:慎用数字索引签名
    第3章 类型推断与控制流分析
      条款18:避免类型冗余,保持代码整洁
      条款19:类型专属,变量分立
      条款20:类型能溯源,推断全了解
      条款21:对象整装,一次性构造
      条款22:认识类型收缩
      条款23:别名要使用,类型得一致
      条款24:以上下文为基础,类型推导有根有据
      条款25:类型演变,时刻了解
      条款26:函数式构建引航,类型贯通流转
      条款27:async取代回调,类型流转更畅通
      条款28:类与柯里化并举,新建类型推断点
    第4章 类型设计
      条款29:类型即契约,状态需有效
      条款30:宽进严出,契约必守
      条款31:类型勿繁,注释需简
      条款32:类型别名切勿包含null或undefined
      条款33:空值需在类型之外
      条款34:接口组合胜过属性组合
      条款35:类型精确优先,慎用字符串
      条款36:特殊值要有独立类型
      条款37:慎用可选属性
      条款38:同类型参数不传两次
      条款39:统一类型胜过细微差异建模
      条款40:不完全精确的类型胜过不准确的类型
      条款41:以专业领域语言来命名类型
      条款42:孤例不证
    第5章 非健全性与any类型
      条款43:压缩any的作用域

      条款44:更精确的any变体胜过any本身
      条款45:在签名正确的函数内部隐藏不安全类型断言
      条款46:类型未知,unknown胜过any
      条款47:类型安全的方法胜过猴子补丁
      条款48:规避健全性陷阱
      条款49:跟踪类型覆盖率,避免类型安全回退
    第6章 泛型与类型级编程
      条款50:视泛型为类型间的函数
      条款51:避免非必要的类型参数
      条款52:条件类型胜过重载签名
      条款53:控制条件类型在联合类型上的分布
      条款54:使用模板字面量类型建模DSL和字符串之间的关系
      条款55:类型也要测试
      条款56:优化类型的展示方式
      条款57:泛型也要尾递归
      条款58:自动代码生成胜过手写复杂类型
    第7章 TypeScript指南
      条款59:使用Never类型进行类型穷举检查
      条款60:遍历对象
      条款61:使用Record类型保持值的同步
      条款62:使用剩余参数和元组类型来建模可变参数函数
      条款63:使用可选的never属性来建模异或关系
      条款64:使用Brand构建名义类型
    第8章 类型声明和@types
      条款65:将TypeScript和@types放在devDependencies中
      条款66:理解类型声明中的三个版本
      条款67:导出所有出现在公共API中的类型
      条款68:使用TSDoc注释API
      条款69:如果this是API的一部分,请在回调中为其指定类型
      条款70:使用镜像类型断开依赖关系
      条款71:使用模块增强来改善类型
    第9章 编写和运行代码
      条款72:与Typescript相比,ECMAScript更胜一筹
      条款73:使用源码映射调试TypeScript
      条款74:了解运行时类型的重组
      条款75:理解DOM的层级关系
      条款76:根据环境创建精确的模型
      条款77:理解类型检查和单元测试之间的关系
      条款78:关注编译器的性能
    第10章 现代化与迁移
      条款79:编写现代化的JavaScript
      条款80:使用@ts-check和JSDoc试验TypeScript
      条款81:使用allowJs混合TypeScript和JavaScript
      条款82:按照依赖逐个进行模块转换
      条款83:在启用noImplicitAny前,不要认为迁移已完成
    附录 第一版与第二版条款对照表