Skip to content

Latest commit

 

History

History
32 lines (23 loc) · 1004 Bytes

FlipArguments.md

File metadata and controls

32 lines (23 loc) · 1004 Bytes
标题 标签
FlipArguments(函数参数反转) extends, array,infer,function(继承, 数组,推断,函数)

函数参数反转。

  • 第一个参数继承任意函数,使用 infer 推断函数的参数,并使用Reverse反转参数,返回反转参数后的函数。

代码如下:

type FlipArguments<T extends (...args: any) => any> = T extends (
  ...args: infer A
) => infer R
  ? (...args: Reverse<A>) => R
  : T;

使用方式:

type Flipped = FlipArguments<
  (arg0: string, arg1: number, arg2: boolean) => void
>;
// (arg0: boolean, arg1: number, arg2: string) => void

应用场景

如下所示, 鼠标悬浮到对应的类型变量可以查看类型。