在 TypeScript 中,类型守卫 (Type Guards) 是一种用于在运行时检查变量类型,从而在特定的代码块中收窄 (Narrowing) 变量类型的机制。 简单来说,TypeScript 的静态类型分析非常强大,但它无法总是知道运行时变量的确切类型(特别是对于联合类型 )。类型守卫就是你告诉编译器:“在这个 块里,你可以确信这个变量是 类型”。 以下是 TypeScript 中几种主要的类型守卫方式: --- 1. 关键字 这是最基本的类型守卫,利用 JavaScript 原生的 运算符。适用于基本数据类型(, , , 等)。 2. 关键字 用于检查一个值是否是某个类 (Class) 的实例。这对于处理类继承非常有用。 注意: 不能用于检查接口 (Interface),因为接口在编译后会被移除,运行时不存在。 3. 操作符 用于检查对象中是否存在某个属性。这对于区分结构不同的对象(包括接口)非常有用。 4. 自定义类型守卫 (User-Defined Type Guards) 这是 TypeScript 最强大的特性之一。你可以编写一个函数,返回值的类型谓词为 。 语...