我们在打字稿中遇到了一个问题,当时我们在指定类型应该是一个非常特定的类。但这使instanceof检查代码的另一部分失败。
class MyClass {
public a: string = 'foo';
constructor() {}
}
const foo:MyClass = new MyClass();
const bar:MyClass = { a: 'bar' };
console.log(foo instanceof MyClass, bar instanceof MyClass); // true, false
现在,这显然是正确的,因为酒吧应该未通过instanceof
检查。
但是打字稿没有显示任何警告{ a: 'bar' }
不是类实例。我知道它与它的公共签名匹配,但我实际上需要它成为“班级”
出于上述简化示例中未显示的原因,我们需要使用instanceof
。
我发现Google很难找到答案。
有什么办法可以使打字稿更严格?