UNPKG

react-with-hoc

Version:

Work with React and HOCs (Higher-Order Components)

14 lines 1 kB
import { ComponentType, FunctionComponent } from "react"; import { Hoc } from "../types/Hoc"; export type NewHocReturn<HocArgs extends any[]> = (...args: HocArgs) => Hoc<any[]>; export type HocDefinition<HocArgs extends any[]> = (Component: ComponentType<any>, ...args: HocArgs) => FunctionComponent<any>; export type GetHocArgs<T> = Extract<T extends NewHocReturn<infer R> ? R : T extends HocDefinition<infer R> ? R : never, any[]>; type Name<HocArgs extends any[]> = string | ((functions: { Component: ComponentType<any>; hoc: HocDefinition<HocArgs>; }, ...args: HocArgs) => string); declare function newHoc<TNewHocReturn extends NewHocReturn<any>>(hoc: HocDefinition<GetHocArgs<TNewHocReturn>>): TNewHocReturn; declare function newHoc<TNewHocReturn extends NewHocReturn<any>>(name: Name<GetHocArgs<TNewHocReturn>>, hoc: HocDefinition<GetHocArgs<TNewHocReturn>>): TNewHocReturn; declare const exportNewHoc: typeof newHoc; export { exportNewHoc as newHoc }; //# sourceMappingURL=newHoc.d.ts.map