arrayer - Typescript: få sammanslagen/kombinerad typ från unionstyp
Jag har en union av okända typer. Jag vill få en sammanslagen typ av den. Till exempel:
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 }
Där TMerge praktiskt taget är samma som
type TMerge = {
x: number
y: string
}
Jag kan inte avgöra vilka typer som finns i en array eftersom arrayen ursprungligen består av olika klasser som används som moduler. Utan en sådan förening vet inte min slutliga klass om alla metoder och egenskaper.
Jag antar att det är omöjligt att få rätt sammanslagen typ direkt från en array på grund av &s tvetydighet mellan snitt och sammanslagning, men om det finns ett knep skulle jag gärna vilja höra det.