Type alias AllXOR<T>

AllXOR<T>: T extends [infer Only]
    ? Only
    : T extends [infer A, infer B, ...(infer Rest)]
        ? AllXOR<[XOR<A, B>, ...Rest]>
        : never

All Xor

Type Parameters

  • T extends any[]

Example

type xor = AllXOR<[ { a: AModule }, { b: BModule } ]>

https://github.com/Microsoft/TypeScript/issues/14094#issuecomment-723571692