挑战
Implement a type IsUnion
, which takes an input type T
and returns whether T
resolves to a union type.
For example:
解答
我们首先判断 T
是否是 never
类型,如果是,则返回 false
。
然后我们定义一个辅助类型 K
,默认为 T
。接着我们判断 K
是否是 T
的子类型,如果是,则说明 T
是联合类型。最后我们判断 T
是否只有一个元素,如果是,则返回 false
,否则返回 true
。