Как создать универсальную функцию Компонент - PullRequest
1 голос
/ 03 апреля 2019

Возможно ли создать универсальную функцию Components?

Я предполагал, что что-то вроде следующего примера сделало бы уловку:

type MyComponentProps<T> = T & {
    component: ComponentType<T>, 
    primary?: boolean, 
    size?: 'S' | 'M' | 'L'
}


const MyComponent: ComponentType<MyComponentProps<T>> = ({ component, size, primary,...rest }) => {
    /* ... */
}

... но не

Когда вы объявляете компонент как функцию и пропускаете объявление React.ComponentType, объявление выглядит нормально:

function MyComponent<T>({ size, primary, component, ...rest }: MyComponentProps<T>) {
    /* ... */
}

Но пишу Компонент примерно так, TSX (я использую последнее приложение create-Reaction-app) больше не распознает его как Компонент, потому что в нем отсутствует объявление React.ComponentType, которое я принимаю.

...