TypeScript 模块、装饰器与工程化
📚 TypeScript 教程系列 入门与配置 基础类型与变量声明 函数 流程控制与运算符 集合类型 异步编程与错误处理 接口与类 泛型与类型组合 高级类型 模块、装饰器与工程化(本文) ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 本篇是 TypeScript 教程的收官之作,聚焦于工程化层面的核心能力:从命名空间与模块系统的组织方式,到声明文件如何桥接 JavaScript 生态,再到装饰器的元编程能力与路径映射、项目引用、Monorepo 等大型项目配置。最后覆盖从 JS 迁移、单元测试、设计模式到性能优化与综合类型设计,帮助你把 TypeScript 真正用进真实项目。 命名空间 命名空间的主要目标是解决命名冲突问题。就像一个班上有两个叫"小明"的学生,需要通过姓氏(王小明、李小明)等额外信息来区分他们。命名空间定义了标识符的可见范围,一个标识符可在多个命名空间中定义,在不同命名空间中同名标识符的含义互不干扰。 语法定义 TypeScript 使用 namespace 关键字来定...
TypeScript 高级类型
📚 TypeScript 教程系列 入门与配置 基础类型与变量声明 函数 流程控制与运算符 集合类型 异步编程与错误处理 接口与类 泛型与类型组合 高级类型(本文) 模块、装饰器与工程化 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 TypeScript 的类型系统不仅能描述数据的形状,还能像写逻辑一样对类型本身进行运算。工具类型、条件类型、映射类型、infer、索引类型、递归类型,以及协变与逆变,构成了 TS 类型编程最核心也最硬核的部分。掌握它们,才能真正写出既类型安全又高度复用的代码。 工具类型 工具类型(Utility Types)是 TypeScript 内置的一系列泛型类型,本质上是基于映射类型和条件类型实现的「类型转换函数」。它们帮助开发者快速从一个已有类型派生出新类型,提升代码的复用性与类型安全性。 在实际开发中,我们经常需要基于现有类型创建变体:把所有属性变成可选、变成只读、只取其中几个字段、去掉某些字段等等。手动重写这些类型既繁琐又容易和原类型脱节,工具类型提供了一种声明式的方式来完成这...
TypeScript 泛型与类型组合
📚 TypeScript 教程系列 入门与配置 基础类型与变量声明 函数 流程控制与运算符 集合类型 异步编程与错误处理 接口与类 泛型与类型组合(本文) 高级类型 模块、装饰器与工程化 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 TypeScript 的类型系统不止能描述单一类型,还能通过泛型让代码与具体类型解耦,再借助 type 别名、联合类型、交叉类型、字面量类型等把多个类型组合出精确的约束。本篇从泛型出发,依次串联类型别名、联合与交叉、字面量、类型守卫、可选链与空值合并、模板字面量类型,构建一套可复用且类型安全的类型组合工具链。 泛型(Generics) 泛型是一种语言特性,它允许在定义函数、类、接口等时用占位符表示类型而非具体类型。这一功能有助于编写可重用、灵活且类型安全的代码。 其主要目的是处理不特定类型的数据,使代码能适配多种数据类型而不丧失类型检查。 泛型的三大优势 代码重用: 可编写与特定类型无关的通用代码,提升复用性。 类型安全: 编译阶段进行类型检查,规避运行时类型错误。 抽象性:...
TypeScript 接口与类
📚 TypeScript 教程系列 入门与配置 基础类型与变量声明 函数 流程控制与运算符 集合类型 异步编程与错误处理 接口与类(本文) 泛型与类型组合 高级类型 模块、装饰器与工程化 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 TypeScript 的接口与类是面向对象编程的核心构件:接口负责描述对象的形状与契约,类负责封装数据与行为并支持继承与多态。本篇将接口、类、访问修饰符、抽象类、继承与混入串联起来,形成一条从"类型契约"到"代码复用"的完整脉络。 接口 接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法。需要注意接口不会转换为 JavaScript,它只是 TypeScript 编译时的一部分。 TypeScript 接口定义如下: 12interface interface_name {} 接口属性与方法 以下实例中,定义了一...
TypeScript 异步编程与错误处理
📚 TypeScript 教程系列 入门与配置 基础类型与变量声明 函数 流程控制与运算符 集合类型 异步编程与错误处理(本文) 接口与类 泛型与类型组合 高级类型 模块、装饰器与工程化 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 JavaScript 中大量操作都是异步的,例如网络请求、文件读取、定时器等。Promise 为这些异步操作提供了统一的编程接口,而 TypeScript 又通过泛型为 Promise 加上了精确的类型约束。本篇将把 Promise、async/await 与错误处理三部分串联起来,从创建、链式调用、组合方法,到同步风格的异步语法,再到自定义错误与 Result 类型,系统讲解 TypeScript 异步编程的完整图景。 Promise 异步编程 Promise 是 JavaScript 异步编程的基础,TypeScript 为其提供了完整的类型支持。通过泛型参数,可以精确指定 Promise 成功解决(resolve)时的值类型与失败拒绝(reject)时的原因类型。 为什么...
TypeScript 集合类型
📚 TypeScript 教程系列 入门与配置 基础类型与变量声明 函数 流程控制与运算符 集合类型(本文) 异步编程与错误处理 接口与类 泛型与类型组合 高级类型 模块、装饰器与工程化 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 TypeScript 在 JavaScript 的基础上为各类集合类型加上了静态类型约束,使得数组、元组、枚举、Map、Set 以及对象在编写阶段就能获得类型检查与智能提示。本篇将这几种常用的集合类型串联起来,从声明、访问到常用方法逐一展开,帮助你建立完整的类型化数据结构心智模型。 数组(Array) 数组对象用于使用单独的变量名来存储一系列的值。例如,将多个网站名字各自存入单独变量会非常繁琐,而使用数组则简洁得多: 12var sites:string[];sites = ["Google","Runoob","Taobao"] 声明数组 TypeScript 声明数组的语法格式如下: 12var array_nam...
TypeScript 流程控制与运算符
📚 TypeScript 教程系列 入门与配置 基础类型与变量声明 函数 流程控制与运算符(本文) 集合类型 异步编程与错误处理 接口与类 泛型与类型组合 高级类型 模块、装饰器与工程化 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 TypeScript 在 JavaScript 之上补充了类型系统,而运算符、条件语句、循环以及迭代器/生成器构成了程序流程控制的核心。本篇将这几部分串联起来,覆盖从算术运算到生成器惰性求值的完整链路,帮助你在类型约束下写出更清晰的控制流。 运算符 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如 7 + 5 = 12 中,7、5、12 是操作数,+ 是加法运算符,= 是赋值运算符。 TypeScript 常用运算符包括:算术运算符、关系运算符、逻辑运算符、按位运算符、赋值运算符、三元/条件运算符、字符串运算符以及类型运算符。 算术运算符 假定 y = 5,下表列出了 TypeScript 支持的算术运算符: 运算符 描述 例子 x 运算结果 y 运算...
TypeScript 函数
📚 TypeScript 教程系列 入门与配置 基础类型与变量声明 函数(本文) 流程控制与运算符 集合类型 异步编程与错误处理 接口与类 泛型与类型组合 高级类型 模块、装饰器与工程化 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 TypeScript 在 JavaScript 函数的基础上引入了完整的类型系统,让我们可以为参数、返回值、this 等显式标注类型,并通过函数重载为同一个函数定义多套调用签名。本文从函数的定义与参数类型出发,逐步覆盖可选参数、默认参数、剩余参数、this 绑定,再到函数重载与箭头函数,帮助你写出类型安全且易于维护的函数代码。 函数定义 函数是包裹在花括号中的代码块,前面使用关键词 function 声明。基本语法如下: 123function function_name() { // 执行代码} 示例: 123function test() { console.log("调用函数");} 调用函数 函数只...
TypeScript 基础类型与变量声明
📚 TypeScript 教程系列 入门与配置 基础类型与变量声明(本文) 函数 流程控制与运算符 集合类型 异步编程与错误处理 接口与类 泛型与类型组合 高级类型 模块、装饰器与工程化 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 TypeScript 的核心价值在于静态类型系统,它让 JavaScript 在编译阶段就能捕获大量潜在错误。本章将系统梳理 TypeScript 的基础类型体系、变量声明方式,以及 null/undefined、Symbol、Number、String 等原始类型的深入用法,并讲解类型推断与类型断言这两项让类型系统既灵活又可控的关键机制。 基础类型 基础类型可以让开发者更准确地描述数据的结构和意图。TypeScript 包含的数据类型如下表所示: 类型 描述 示例 string 表示文本数据 let name: string = "Alice"; number 表示数字,包括整数和浮点数 let age: number = 30; b...
TypeScript 入门与配置
📚 TypeScript 教程系列 入门与配置(本文) 基础类型与变量声明 函数 流程控制与运算符 集合类型 异步编程与错误处理 接口与类 泛型与类型组合 高级类型 模块、装饰器与工程化 ⚠️ 来源声明:本文内容参考自 菜鸟教程 TypeScript 教程,仅供学习交流,版权归原作者所有。 TypeScript 是 JavaScript 的超集,由微软开发并在编译期提供静态类型检查,让大型项目与团队协作更加安全可控。本篇将带你从零认识 TypeScript,理解它和 JavaScript 的差异,搭建本地开发环境,掌握基础语法与项目配置,为后续深入学习打下基础。 TypeScript 简介 什么是 TypeScript TypeScript 是一种由微软开发的开源编程语言,它是 JavaScript 的超集,在 JavaScript 的基础上增加了可选的静态类型和基于类的面向对象编程。TypeScript 通过类型注解在编译阶段进行类型检查,最终被编译为纯 JavaScript 代码,可以在任何支持 JavaScript 的浏览器、Node.js 环境以及移动端...

