在 TypeScript 中,类型守卫 (Type Guards) 是一种通过条件语句检查变量类型,从而在特定代码块中“收窄”变量类型的机制。 和 是 JavaScript 原生的操作符,TypeScript 能够识别它们并自动进行类型推断。 以下是它们的具体用法和区别: --- 1. 类型守卫 主要用于检查基本数据类型(Primitives)。 适用范围 它可以识别以下返回值: (注意: 和数组也会返回这个,所以通常不用它来精确判断对象) 如何使用 通常用于处理联合类型(Union Types),区分不同的基本类型。 注意事项 的陷阱: 会返回 。如果你需要判断是否为对象且非 null,不能只用 。 数组的陷阱: 也会返回 。 --- 2. 类型守卫 主要用于检查类(Class)的实例或构造函数创建的对象。它通过检查对象的原型链来判断。 适用范围 自定义的 内置对象(如 , , , 等) 如何使用 当你的类型是类的联合类型时,使用 非常有效。 用于内置对象 --- 3. 总结与对比 | 特性 | | | | :--- | :--- | :--- | | 检查对象 | 基本数据类...