具有多个长度元组的重载函数的Typescript实现签名
考虑定义以下内容的接口:具有多个长度元组的重载函数的Typescript实现签名,typescript,tuples,overloading,es6-promise,typescript-generics,Typescript,Tuples,Overloading,Es6 Promise,Typescript Generics,考虑定义以下内容的接口: all(值:只读[T1 | PromiseLike,T2 | PromiseLike,T3 | PromiseLike,T4 | PromiseLike,T5 | PromiseLike,T6 | PromiseLike,T7 | PromiseLike,T8 | PromiseLike,T9 | PromiseLike,T10 | PromiseLike]):承诺; 所有(值:只读[T1 | PromiseLike,T2 | PromiseLike,T3 | Prom
all(值:只读[T1 | PromiseLike,T2 | PromiseLike,T3 | PromiseLike,T4 | PromiseLike,T5 | PromiseLike,T6 | PromiseLike,T7 | PromiseLike,T8 | PromiseLike,T9 | PromiseLike,T10 | PromiseLike]):承诺;
所有(值:只读[T1 | PromiseLike,T2 | PromiseLike,T3 | PromiseLike,T4 | PromiseLike,T5 | PromiseLike,T6 | PromiseLike,T7 | PromiseLike,T8 | PromiseLike,T9 | PromiseLike]):承诺;
所有(值:只读[T1 | PromiseLike,T2 | PromiseLike,T3 | PromiseLike,T4 | PromiseLike,T5 | PromiseLike,T6 | PromiseLike,T7 | PromiseLike,T8 | PromiseLike]):承诺;
所有(值:只读[T1 | PromiseLike,T2 | PromiseLike,T3 | PromiseLike,T4 | PromiseLike,T5 | PromiseLike,T6 | PromiseLike,T7 | PromiseLike]):承诺;
所有(值:只读[T1 | PromiseLike,T2 | PromiseLike,T3 | PromiseLike,T4 | PromiseLike,T5 | PromiseLike,T6 | PromiseLike]):承诺;
全部(值:只读[T1 | PromiseLike,T2 | PromiseLike,T3 | PromiseLike,T4 | PromiseLike,T5 | PromiseLike]):承诺;
所有(值:只读[T1 | PromiseLike,T2 | PromiseLike,T3 | PromiseLike,T4 | PromiseLike]):承诺;
所有(值:只读[T1 | PromiseLike,T2 | PromiseLike,T3 | PromiseLike]):承诺;
所有(值:只读[T1 | PromiseLike,T2 | PromiseLike]):承诺;
所有(值:只读(T | PromiseLike)[]):承诺;
满足所有这些重载的方法是什么?
函数所有(值)
和函数所有(…值)
都不起作用。您所说的实现签名是什么意思?如果不是内置的,则类似于all(values:any[]):any
。实现签名是重载中提供的最终签名,必须包含所有签名:@MingweiSamuel的all(values:any[]):any到目前为止正在工作。奇怪的是,函数所有(…值)
没有——我认为这两者实际上是一样的。fn(…值:any[])
会接受fn(a,b,c,d)
,不是我们想要的,而是fn(值:any[])
会接受fn([a,b,c,d,])
——我们想要的单个数组参数。你也可以做一些奇怪的解包,比如fn([…values]:any[])
,但那是毫无意义的。