在 TypeScript 中, 和 的处理方式主要取决于编译选项 的设置。这是 TypeScript 类型系统中最关键的概念之一。 以下是详细的解释: 1. 基础概念 在 JavaScript 中: :表示变量已声明但尚未赋值,或者对象属性不存在。 :表示一个有意的“空值”或“无对象”。 在 TypeScript 中, 和 既是值,也是类型。 --- 2. 编译选项 这是决定 TypeScript 如何处理这两个值的核心开关。 情况 A: (非严格模式) 这是早期 TypeScript 的默认行为(现在不推荐)。在这种模式下, 和 是所有类型的子类型。 这意味着你可以把 或 赋值给 、 等任何类型。 情况 B: (严格模式,推荐) 在现代 TypeScript 项目中,通常都会开启此选项(或者开启 )。 在这种模式下, 和 不再是其他类型的子类型。它们是独立的类型。 如果你想让一个变量既可以是数字也可以是空,必须显式使用联合类型 (Union Types): --- 3. 常用操作符与语法 在严格模式下处理 和 时,TypeScript 提供了一系列工具来简化代码: A. 可选参...