为什么在TypeScript中使用'instanceof'会给我报错"'Foo'仅用作类型,但在此处用作值。"?

14 浏览
0 Comments

为什么在TypeScript中使用'instanceof'会给我报错"'Foo'仅用作类型,但在此处用作值。"?

我写了这段代码:

interface Foo {
    abcdef: number;
}
let x: Foo | string;
if (x instanceof Foo) {
    // ...
}

但是 TypeScript 给我报了这个错误:

'Foo' 只是一个类型的引用,但在此处却作为值被使用。

为什么会发生这种情况?我以为 instanceof 可以检查我的值是否具有指定的类型,但 TypeScript 似乎不喜欢这样。

0