首页 > 解决方案 > 为什么我可以调用一个用 instanceof 而不是 typeof 保护的函数?

问题描述

鉴于以下情况:

let x: Record<string, string> | Function = {};

if (x instanceof Function) {
    x();
}

if (typeof x === "function") {
    x();
}

使用保护的第一次调用可以instanceof工作,但使用保护的第二次调用typeof会产生此错误:

此表达式不可调用。类型“从不”没有调用签名。

何时可以评估变量的类型function但仍不可调用?

游乐场链接

标签: typescript

解决方案


推荐阅读