You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TS4.9.3+Angular15中isEmpty函数对象/数组全等判断提示解析

关于TypeScript中对象/数组全等判断提示的解释

这个提示的核心意思是:JavaScript/TypeScript里用===比较对象(包括数组,因为数组属于对象类型)时,是按内存引用地址比对,不是按内容比对。

具体来说:

  • 你写的value === {}是把传入的value和一个临时创建的空对象做全等判断。这个临时空对象在内存里有独立的引用地址,哪怕传入的value本身是空对象,它的引用地址也和临时创建的{}不一样,所以这个条件永远会返回false。
  • 同理,value === []是拿传入的数组和临时创建的空数组比对,两者的引用地址必然不同,所以这个条件也永远返回false。TypeScript检测到这两个条件完全无效,就会给出这个提示。

如果要正确判断空数组和空对象,可以改成下面的写法:

static isEmpty(value: any): boolean {
    // 先判断null/undefined
    if (value === null || value === undefined) {
        return true;
    }
    // 判断空数组
    if (Array.isArray(value) && value.length === 0) {
        return true;
    }
    // 判断空对象(注意排除null,因为typeof null会返回'object')
    if (typeof value === 'object' && value !== null && Object.keys(value).length === 0) {
        return true;
    }
    // 其他情况都不是空值
    return false;
}

内容的提问来源于stack exchange,提问作者Midhun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 18:45:12