Typescript:从联合类型获取合并/组合类型

Spe*_*sG3 5 arrays union merge types typescript

我有一个未知类型的联盟。我想得到它的合并类型。例如:

const a = {
    x: 10
}
const b = {
    y: 'qwer'
}

const array = [a, b]

type TArr = typeof array
// I use a function which receives an array as argument so I only have type of array from now on

type TUnion = keyof TArr[number] // { x: number } | { y: string }
type TMerge = ? // { x: number } & { y: string }
Run Code Online (Sandbox Code Playgroud)

哪里TMerge几乎相同

type TMerge = {
  x: number
  y: string
}
Run Code Online (Sandbox Code Playgroud)

我无法确定数组中的类型,因为最初数组由用作模块的不同类组成。如果没有这样的联合合并,我的最终类就不知道所有方法和属性。

我认为不可能直接从数组中获得合并类型,因为&交集和合并之间存在歧义,但如果有一个技巧,我很想听听。