我想知道是否可以在 TypeScript 中将联合类型“拆分”为特定的子类型。这是我尝试使用的代码,很明显我试图从代码段中实现:
type SplitType<T> =
T extends (infer A)|(infer B)
? Something<A, B>
: T;
Run Code Online (Sandbox Code Playgroud)
在这个例子中Something<A, B>可以是[A, B],或者是一个完全不同的类型。这意味着SplitType<string>只会输出 a string,但SplitType<number|string>意味着[number, string].
在 TypeScript 中可能有这样的事情吗?如果没有,将来是否有允许这样做的功能(例如可变参数类型)?