当前位置: 首页 > news >正文

2.5 TypeScript 中的 instanceof 运算符

在 TypeScript 中,instanceof 运算符用于在运行时检查一个对象是否是某个类或构造函数的实例。它会返回一个布尔值:

  • 如果对象是该类型的实例,返回 true
  • 否则返回 false

这种机制提供了一种在运行时进行类型校验的方式,从而增强代码的健壮性和安全性。

基本语法

objectName instanceof typeEntity

参数说明:

  • objectName:要检查的对象。
  • typeEntity:要检查的目标类型(类或构造函数)。

返回值:

  • 返回 true 表示该对象确实是该类型的实例;
  • 否则返回 false

示例一:配合 TypeScript 类使用 instanceof

下面这个例子展示了如何使用 instanceof 来判断对象是否属于某个类的实例:

class Person {name: string;age: number;constructor(name: string, age: number) {this.name = name;this.age = age;}
}const person1 = new Person("Pankaj", 20);
console.log(person1 instanceof Person); // trueconst randomObject = { name: "Neeraj", job: "Developer" };
console.log(randomObject instanceof Person); // false

输出:

true
false

尽管 randomObject 拥有与 Person 类类似的属性结构,但它并不是通过 Person 构造函数创建的,因此不是其实例。

示例二:配合构造函数使用 instanceof

instanceof 也可以用于普通的构造函数,而不仅仅是类。

function Company(name: string, est: number) {this.name = name;this.est = est;
}const GFG = new Company("GeeksforGeeks", 2009);const cmpny2 = {name: "Company2",est: 2010
}console.log(GFG instanceof Company);    // true
console.log(cmpny2 instanceof Company); // false

输出:

true
false

GFG 是使用 Company 构造函数创建的,而 cmpny2 虽然拥有相同的属性,但它并不是通过该构造函数实例化的对象。

总结

instanceof 是 TypeScript 中一个强大的运行时类型检查工具,主要用于判断一个对象是否为某个类或构造函数的实例。
你可以在以下场景中使用它:

  • 类型断言(Type Assertion)
  • 条件判断(如 instanceof 的分支处理)
  • 调试时查看对象真实类型

通过掌握并合理使用 instanceof,可以提升代码的类型安全性,使你的 TypeScript 应用更稳健、可维护性更强。

小提示instanceof 检查的是原型链,因此只能用于引用类型(如类实例或构造函数创建的对象),对基本类型(如字符串、数字)无效。如果你想检查基本类型,可以使用 typeof 运算符。

http://www.xdnf.cn/news/741763.html

相关文章:

  • C++中全局变量和局部变量的区别
  • 华为OD机试真题——最小的调整次数/特异性双端队列(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
  • 【Netty系列】实现HTTP文件服务器
  • Redis:功能特性和应用场景
  • 学术合作交流
  • 生成https 证书步骤
  • 3D Gaussian splatting 04: 代码阅读-提取相机位姿和稀疏点云
  • 计算机网络物理层基础练习
  • 华为OD机试真题——硬件产品销售方案(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
  • 编辑器之神 Vim
  • python打卡第41天
  • Kafka ACK机制详解:数据可靠性与性能的权衡之道
  • AI炼丹日志-26 - crawl4ai 专为 AI 打造的爬虫爬取库 上手指南
  • Android之ListView
  • 第十二节:第三部分:集合框架:List系列集合:特点、方法、遍历方式、ArrayList集合的底层原理
  • 【Kotlin】数字字符串数组集合
  • 【Dv3Admin】工具权限配置文件解析
  • 小程序使用npm包的方法
  • 《STL--stack 和 queue 的使用及其底层实现》
  • WPS快速排版
  • 前端八股 tcp 和 udp
  • Linux安装redis
  • MATLAB实现井字棋
  • 湖北理元理律师事务所:债务管理中的人本主义实践
  • 【MySQL】索引(B+树详解)
  • 接口性能优化
  • 【数据分析】基于Cox模型的R语言实现生存分析与生物标志物风险评估
  • python 空气质量可视化,数据分析 + 前后端分离 + ppt 演讲大纲
  • 设计模式——工厂方法模式(创建型)
  • RuoYi前后端分离框架实现前后端数据传输加密(一)之后端篇