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

TypeScript:unknown参数检查时undefined与null为何被视为同类?

代码检查提示的原因解析

先看你写的判断条件:a != undefined && a != null,这里的关键是非严格不等运算符!=的类型转换规则。

在JavaScript/TypeScript里,null == undefined是成立的,反过来null != undefined就是false。所以当你写a != undefined时,这个条件已经同时排除了a是null和undefined的情况——只要a是这两个值中的任意一个,a != undefined都会返回false;反之,只要这个条件为true,a肯定既不是null也不是undefined,那后面的&& a != null必然永远为true,完全是多余的。

所以代码检查工具才会提示你可以简化,直接写成return a != null;或者return a != undefined;就行,这两种写法是完全等价的,都能准确判断a不是null也不是undefined。

另外补充一点:你的Something类型包含了string | number | boolean | object,但要注意,object类型在TypeScript里不包括原始类型的包装对象(比如String实例),不过这和当前的代码检查提示无关,只是个小提醒。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 18:50:27