TypeScript Pro 基础知识

TypeScript Pro Essentials

Total TypeScript Pro Essentials 是成为 TypeScript 向导的终极指南。

Pro Essentials 无需任何 TypeScript 知识即可开始使用。我们将从设置 IDE 开始,并了解 TypeScript 在构建过程中的位置。我们将介绍从优秀的 JavaScript 开发人员转变为出色的 TypeScript 开发人员所需的一切。

但我们不会止步于此。该材料一直延伸到高级主题,如泛型、类型保护和构建共享实用程序。如果你觉得自己从未真正学过TypeScript,那么现在机会来了。

我们不相信坐下来被动地学习。Pro Essentials 研讨会分为 17 个部分,包含 200 多节课,是一门实用课程。该材料已经在几个面对面的研讨会中进行了测试,并根据数百名学生的反馈进行了改进。

无论您是第一次使用 TypeScript,还是想加深知识,Pro Essentials 都是适合您的课程。

 以下是包含的内容:

TypeScript 简介

通过复习 TypeScript 的核心优势和概念来开始您的 TypeScript 设置:初始配置、TypeScript 编译器和类型推断。

按照编辑器的推荐设置和扩展进行操作,重点关注 Visual Studio Code,并熟悉导航、自动完成、重构和编写自记录代码等功能。

了解 TypeScript 在构建过程中的角色,以及为什么浏览器需要帮助理解语法。构建项目以与编译器很好地协同工作,并配置为使用 Vite 和热模块替换 (HMR) 等现代构建工具。练习在 CI/CD 管道中设置类型检查,防止错误到达生产环境。

 TypeScript 基础知识

通过使用 TypeScript 的基本类型和注释来增强您的基础技能。您将使用函数参数和返回类型,并使用对象文本类型、数组和元组对数据进行建模。编写可重用的类型别名,正确键入异步代码,并处理来自外部源的数据。通过使用联合、交集和接口创建更灵活的类型。

编写更具表现力的代码,通过几种缩小范围技术来优化类型,并识别代码库中 any、never 和 unknown 的角色。

对象、类和可变性

类型、接口和类在 TypeScript 中都有其位置。了解它们之间的区别,以及如何根据您的需求选择合适的结构。处理对象中的动态数据,并使用映射类型克服索引签名限制。练习使用 Pick、Omit 和 Partial 等基本类型帮助器,并在需要时构建自己的帮助器。

开发关于可变性如何影响类型推断和安全性的心智模型。认识到不可变数据结构的好处,以及如何解决它们的怪癖。

将面向对象的编程原则应用于 TypeScript 代码。了解类、构造函数和访问修饰符的作用,以及如何使用继承和组合来构建遵循真实世界设计模式的复杂系统。

使用编译器

利用 TypeScript 编译器的强大功能从值派生类型,同时加深对类型推断的理解。创建新类型的类型别名,并使用索引访问类型来定位嵌套属性。

通过类型注释和断言识别 TypeScript 何时需要您的帮助,以及 as、asserts 和 meet 的目的。将这些技术应用于实际方案,例如使用 DOM API、分析 JSON 和创建配置对象。

了解环境

区分TypeScript模块和脚本,防止全局范围污染。为 JavaScript 文件和第三方库提供类型,并了解环境声明的作用。

通过声明合并安全地修改全局接口(如 Window),使用 JSX 等命名空间,并了解何时使用.d.ts类型定义文件与模块。

了解根据你正在处理的项目类型配置 TypeScript 行为的最佳实践。调整严格级别、模块分辨率并生成类型声明文件。使用 TypeScript 作为 linter,并优化大型项目的构建性能。

高级应用程序开发

了解 CommonJS (CJS) 和 ES 模块 (ESM) 之间的核心区别,以及 TypeScript 如何处理模块语法。了解如何使用文件扩展名来指导模块解析,并配置 TypeScript 设置以实现更一致的行为。就何时在项目中采用 ESM 做出明智的决策,并构建支持 CJS 和 ESM 使用者的库,以实现最大的兼容性。

通过表示真实世界的概念并在类型中编码业务逻辑来练习域建模。为类型定义建立单一事实来源,并创建可重用的泛型类型实用程序。使用放置合理的约束强制执行更严格的类型检查。

结合泛型和函数重载以获得最大的灵活性,并创建自定义类型保护和谓词以增强类型推断。使用模板文本类型、映射类型和自定义错误类型创建类型安全的 API。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。