芝麻web文件管理V1.00
编辑当前文件:/home/freeclou/app.optimyar.com/backend/node_modules/reselect/src/types.ts
export type Selector< S = any, R = unknown, P extends never | readonly any[] = any[] > = [P] extends [never] ? (state: S) => R : (state: S, ...params: P) => R interface OutputSelectorFields
{ resultFunc: Combiner memoizedResultFunc: Combiner lastResult: () => Result dependencies: SelectorArray recomputations: () => number resetRecomputations: () => number } export type OutputSelector< S extends SelectorArray, Result, Params extends readonly any[], Combiner > = Selector
, Result, Params> & OutputSelectorFields
export type ParametricSelector
= Selector< State, Result, [Props, ...any] > export type OutputParametricSelector
= ParametricSelector
& OutputSelectorFields
export type SelectorArray = ReadonlyArray
type GetStateFromSelector
= S extends Selector
? State : never export type GetStateFromSelectors
= // handle two elements at once so this type works for up to 30 selectors S extends [infer C1, infer C2, ...infer Other] ? Other extends [any] ? GetStateFromSelector
& GetStateFromSelector
& GetStateFromSelectors
: GetStateFromSelector
& GetStateFromSelector
: S extends [infer Current, ...infer Other] ? Other extends [any] ? GetStateFromSelector
& GetStateFromSelectors
: GetStateFromSelector
: S extends (infer Elem)[] ? GetStateFromSelector
: never export type GetParamsFromSelector
= S extends Selector
? P extends [] ? never : P : never export type GetParamsFromSelectors
= S extends SelectorArray ? S extends (infer s)[] ? GetParamsFromSelector
: S extends [infer Current, ...infer Rest] ? GetParamsFromSelector
extends [] ? GetParamsFromSelectors
: GetParamsFromSelector
: S : Found type SelectorReturnType
= S extends Selector ? ReturnType
: never export type SelectorResultArray< Selectors extends SelectorArray, Rest extends SelectorArray = Selectors > = // handle two elements at once so this type works for up to 29 selectors, not only up to 15 Rest extends [infer S1, infer S2, ...infer Remaining] ? Remaining extends SelectorArray ? [ SelectorReturnType
, SelectorReturnType
, ...SelectorResultArray
] : [SelectorReturnType
, SelectorReturnType
] : Rest extends [infer S, ...infer Remaining] ? Remaining extends SelectorArray ? [SelectorReturnType
, ...SelectorResultArray
] : [SelectorReturnType
] : Rest extends ((...args: any) => infer S)[] ? S[] : [] export type EqualityFn = (a: any, b: any) => boolean