Typescript 有没有一种方法可以概括函数类型中的参数数量?

Typescript 有没有一种方法可以概括函数类型中的参数数量?,typescript,Typescript,我有一个函数类型定义的别名: IFn_1 = (_: any) => any 我想做的是将其概括为: IFn<n, out> 如果有一种简单的方法来生成给定长度的a,那么这将是一个很容易回答的问题。不幸的是,虽然这已经成为一种语言,但它还不是语言的一部分 实际上,我们能做的最好的事情(不支持)是创建我们自己的类型别名TupleOfLength,它生成值类型V的N的一个元组副本,最多可生成N的硬编码最大数量。这是一种方法: type TupleOfLength<N ex

我有一个函数类型定义的别名:

IFn_1 = (_: any) => any
我想做的是将其概括为:

IFn<n, out>

如果有一种简单的方法来生成给定长度的a,那么这将是一个很容易回答的问题。不幸的是,虽然这已经成为一种语言,但它还不是语言的一部分

实际上,我们能做的最好的事情(不支持)是创建我们自己的类型别名
TupleOfLength
,它生成值类型
V
N
的一个元组副本,最多可生成
N
的硬编码最大数量。这是一种方法:

type TupleOfLength<N extends number, V = any> = Extract<
  [
    [],
    [V],
    [V, V],
    [V, V, V],
    [V, V, V, V],
    [V, V, V, V, V],
    [V, V, V, V, V, V],
    [V, V, V, V, V, V, V],
    [V, V, V, V, V, V, V, V],
    // add more here if you need them
    ...V[][]
  ][N],
  any[]
>;
type TupleOfLength=Extract<
[
[],
[五] ,,
[V,V],
[V,V,V],
[V,V,V,V],
[V,V,V,V,V,V],
[V,V,V,V,V,V,V],
[V,V,V,V,V,V,V,V],
[V,V,V,V,V,V,V,V,V],
//如果需要,请在此处添加更多
…V[][]
][N] ,,
任何[]
>;
N
在预期范围内时,此功能运行良好:

type SixStrings=tupleof长度;

//键入SixStrings=[string,string,string,string,string]如果有一种简单的方法来生成给定长度的字符串,那么这将是一个很容易回答的问题。不幸的是,虽然这已经成为一种语言,但它还不是语言的一部分

实际上,我们能做的最好的事情(不支持)是创建我们自己的类型别名
TupleOfLength
,它生成值类型
V
N
的一个元组副本,最多可生成
N
的硬编码最大数量。这是一种方法:

type TupleOfLength<N extends number, V = any> = Extract<
  [
    [],
    [V],
    [V, V],
    [V, V, V],
    [V, V, V, V],
    [V, V, V, V, V],
    [V, V, V, V, V, V],
    [V, V, V, V, V, V, V],
    [V, V, V, V, V, V, V, V],
    // add more here if you need them
    ...V[][]
  ][N],
  any[]
>;
type TupleOfLength=Extract<
[
[],
[五] ,,
[V,V],
[V,V,V],
[V,V,V,V],
[V,V,V,V,V,V],
[V,V,V,V,V,V,V],
[V,V,V,V,V,V,V,V],
[V,V,V,V,V,V,V,V,V],
//如果需要,请在此处添加更多
…V[][]
][N] ,,
任何[]
>;
N
在预期范围内时,此功能运行良好:

type SixStrings=tupleof长度;
//键入SixStrings=[字符串,字符串,字符串,字符串,字符串,字符串]