Skip to main content

type CombineResult<S>

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

Definition

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