1 |
|
2 |
|
3 | import * as React from 'react';
|
4 |
|
5 | export type Omit<T, U> = Pick<T, Exclude<keyof T, U>>;
|
6 |
|
7 | export 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 |
|
16 | export function mapProps<TInner, TOuter>(
|
17 | mapper: (input: TOuter) => TInner,
|
18 | ): InferableComponentEnhancerWithProps<TInner, TOuter>;
|
19 |
|
20 | export function withProps<TInner, TOuter>(
|
21 | objOrMapper: Partial<TInner> | ((input: TOuter) => Partial<TInner>),
|
22 | ): InferableComponentEnhancerWithProps<TInner & TOuter, TOuter>;
|