I have an object of type
type CompoundType = (IType1 | IType2)[] | (IType3 | IType4)[];
Where IType1, IType2, IType3, IType4, ... , ITy
IType1, IType2, IType3, IType4, ... , ITy