在 Typescript Playground (链接) 中输入下面的示例时,将鼠标悬停foo在console.log语句内会显示foo's 类型已缩小到never. 但似乎情况并非如此,因为logIfFoo如下所示运行确实会导致console.log(foo)被调用。这背后的解释是什么?
const logIfFoo = (foo: unknown): void => {
if (foo instanceof Object && "bar" in foo) {
console.log(foo);
}
}
logIfFoo({ "bar": "baz" });