Skip to main content

type CombineResult<S>

Type defining the result type of an async reducer combination for a given shape.

Definition

type CombineResult<S extends AsyncReducer.CombineShape<any>> = S extends readonly AsyncReducer.CombineShape<any>[] ? 0 extends S['length'] ? AsyncReducer.CombineResult<S[number]>[] : {
    [K in keyof S]: S[K] extends AsyncReducer.CombineShape<any> ? AsyncReducer.CombineResult<S[K]> : never;
  } : S extends {
    [key: string]: AsyncReducer.CombineShape<any>;
  } ? {
    [K in keyof S]: AsyncReducer.CombineResult<S[K]>;
  } : S extends AsyncReducer.Accept<any, infer R> ? R : never;