UNPKG

665 BTypeScriptView Raw
1// TypeScript Version: 3.0
2
3import * as React from 'react';
4
5export type Omit<T, U> = Pick<T, Exclude<keyof T, U>>;
6
7export interface InferableComponentEnhancerWithProps<
8 TInjectedProps,
9 TNeedsProps
10> {
11 <P extends TInjectedProps>(
12 component: React.ComponentType<P>,
13 ): React.ComponentType<Omit<P, keyof TInjectedProps> & TNeedsProps>;
14}
15
16export function mapProps<TInner, TOuter>(
17 mapper: (input: TOuter) => TInner,
18): InferableComponentEnhancerWithProps<TInner, TOuter>;
19
20export function withProps<TInner, TOuter>(
21 objOrMapper: Partial<TInner> | ((input: TOuter) => Partial<TInner>),
22): InferableComponentEnhancerWithProps<TInner & TOuter, TOuter>;