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=[字符串,字符串,字符串,字符串,字符串,字符串]