[我试图基于两种类型来评估对象,而没有明确地查看其子对象,因为值不存在(基于我的用例)。
假设我有两个具有不同属性的接口。
[interface A
&interface B
] >>
我将如何检查对象是A型还是B型?
我尝试了以下操作:
interface A { foo: "value"; } interface B { bar: "value"; } const object = { bar: "value" }; function isA(object: any): object is A { if (object as A) { return true; } else { return false; } } console.log(isA(object));
但是,结果总是返回为
True
。
Codesandbox
https://codesandbox.io/s/elastic-gagarin-01c7y?file=/src/index.ts:0-243我试图基于两种类型来评估对象,而无需明确地查看其子对象,因为值不存在(基于我的用例)。假设我有两个接口,它们具有不同的...
interface A {
foo: "value";
}
interface B {
bar: "value";
}
const object = {
bar: "value"
};
function instanceOfA(object: any): object is A {
return 'foo' in object;
}
function isA(obj: any): boolean {
if (instanceOfA(obj)) {
return true;
} else {
return false;
}
}