vt.给出
type Loadable<T> = () => T
type LoadableCombinerResult<T> = { result: T }
我希望定义具有如下输入的函数的类型:
- 可变数量的
Loadable<ResponseDataType>
个输入,每个输入具有不同的ResponseDataType
, -
combiner
获取上述可加载对象的数据结果.
该函数将负责处理错误状态和可加载程序的加载进度,以及其他一些事情.仅当成功加载所有可加载文件时,该函数才会调用combiner
.
这可以在非类型化的JavaScript中实现.然而,我无法正确地在Typescript 中输入它.
非变量类型将如下所示:
function useLoadableCombiner2<TResult, T1, T2>(
combiner: (data1: T1, data2: T2) => TResult,
loadable1: Loadable<T1>,
loadable2: Loadable<T2>
): LoadableCombinerResult<TResult> { ... }
function useLoadableCombiner3<TResult, T1, T2, T3>(
combiner: (data1: T1, data2: T2, data3: T3) => TResult,
loadable1: Loadable<T1>,
loadable2: Loadable<T2>,
loadable3: Loadable<T3>
): LoadableCombinerResult<TResult> { ... }
function useLoadableCombiner4<TResult, T1, T2, T3, T4>(
combiner: (data1: T1, data2: T2, data3: T3, data4: T4) => TResult,
loadable1: Loadable<T1>,
loadable2: Loadable<T2>,
loadable3: Loadable<T3>,
loadable4: Loadable<T4>
): LoadableCombinerResult<TResult> { ... }
function useLoadableCombinerN<...>(...): LoadableCombinerResult<TResult> { ... }
是否可以在一个声明中将其作为一个函数在打印脚本中输入?
它可以是数组/类型化元组,而不是可变数量的参数.
我们的目标是放入可变数量的可加载内容,然后在成功加载所有内容之后,能够调用包含所有数据的类型化combiner
.