当在Typescript Playground(链接(中输入下面的示例时,将鼠标悬停在console.log
语句中的foo
上会发现foo
的类型已缩小到never
。但似乎情况并非如此,因为按照下面的方式运行logIfFoo
确实会导致调用console.log(foo)
。这背后的解释是什么?
const logIfFoo = (foo: unknown): void => {
if (foo instanceof Object && "bar" in foo) {
console.log(foo);
}
}
logIfFoo({ "bar": "baz" });
事实证明这是一个悬而未决的问题。有一个拉取请求已被批准,正在等待合并。