我有一个可以将2种不同类型的对象作为参数
的函数myFunc(arg: (Obj1 | Obj2))
在我的功能中,我需要类似的东西:
let val = ( arg instance of Obj1 ) ? Obj1.propOnlyOnObj1 : Obj2.propOnlyOnObj2;
因为这些属性只存在于其中一个ojbect typescript抛出错误。
答案 0 :(得分:0)
这应该可以正常工作
class A {
public field1: string = 'asd';
}
class B {
public field2: string = 'def';
}
function test(arg: A | B) {
var value = arg instanceof A ? arg.field1 : arg.field2;
//use value
}
您可以在此处播放:Typescript playground
答案 1 :(得分:-1)
let val = _.has(Obj1, 'propOnlyOnObj1') ?
Obj1.propOnlyOnObj1 : Obj2.propOnlyOnObj2;