Определить тип компонента - PullRequest
0 голосов
/ 15 мая 2019

Я играю с компонентом Link из 4.0.0-beta.2 - у него есть поле component - возможность переопределить корневой элемент.

Я хочу создать оболочку вокруг Link - MyLink и передать компонент через реквизиты:

interface Props {
  component: ???
}

const MyLink = ({component}: Props) => {
  <MUILink component={component} ... />
}

Так что из определений типов я не понял, как создать окончательный тип component prop:

declare const Link: OverridableComponent<{
  props: LinkBaseProps & {
    TypographyClasses?: TypographyProps['classes'];
    underline?: 'none' | 'hover' | 'always';
  };
  defaultComponent: 'a';
  classKey: LinkClassKey;
}>;

иOverridableComponent:

/**
 * a component whose root component can be controled via a `component` prop
 *
 * Adjusts valid props based on the type of `component`
 */
export interface OverridableComponent<M extends OverridableTypeMap> {
  <C extends React.ElementType>(props: { component: C } & OverrideProps<M, C>): JSX.Element;
  (props: DefaultComponentProps<M>): JSX.Element;
}

Может кто-нибудь помочь мне определить тип component?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...