#1512·type-fest

[question] UnionToIntersection

Author: salisbury-espinosaCreated Aug 26, 2026Updated Aug 26, 2026
Labelsbug

Bug description

typescript
import type {UnionToIntersection} from 'type-fest';

type OneType = {
  bar: string;
};
type TwoType =
  | {
      mode: 'foo1';
    }
  | {
      mode: 'foo2';
    };

type ResultType = UnionToIntersection<OneType | TwoType>;

===> ResultType => never

Can we improve the utility so that the result becomes (ResultType = OneType & TwoType):

typescript
type ResultType =
  | {
      mode: 'foo1';
      bar: string;
    }
  | {
      mode: 'foo2';
      bar: string;
    };

Repro

https://www.typescriptlang.org/play/?#code/JYWwDg9gTgLgBDAnmApnA3gVQHbAtgFQgElsYUoBnFAYxj2wF84AzKCEOAciVQFoWKSjC4BuALAAoKbzQB5bCgLI0AXgxS4cAEYBDKAC44wqMGwBzCZMZXZcAgHcIy1HFWa4AHw2StfuCAQACYoRlwsEBAAjGIeWowe3uhxfoEhYREQAEyxvn42UjIqcABKQgCuADYwLmpwOAxEpORUtPT4ADwKSsXejs4qAHxWUiy6ldTGuvSULMBCcADaZZRVNSoAunAoAB7k2EGUS4oAbhRbAPwIUOVoRmMTKFZAA