联合类型转化为交叉类型 by Zheeeng @zheeeng 实现高级工具类型 UnionToIntersection<U> 例如 type I = UnionToIntersection<'foo' | 42 | true> // expected to be 'foo' & 42 & true