我有一个简单的函数来检查未知值是否看起来像一个Date对象:
function looksLikeDate(obj: unknown): obj is { year: unknown; month: unknown; day: unknown } {
return (
obj !== null && typeof obj === "object" && "year" in obj && "month" in obj && "day" in obj
);
}
但我收到以下"year" in obj部分代码错误:
对象可能为“空”。(2531)
当我切换obj !== null并且typeof obj === "object"错误消失时:TS Playground Link
这不是很奇怪吗?有人可以向我解释一下吗?