React и Typescript: компоненты являются реквизитом - PullRequest
0 голосов
/ 04 марта 2019

Я делаю приложение, используя React и Typescript.Я не могу понять, как намекнуть, что только один тип компонента может быть использован в качестве атрибута.Вот пример.

в AuthLayout.tsx:

import React, { ReactNode, ReactElement } from 'react';
import { Trans } from '@lingui/react';

type Props = {
  title: ReactElement<any, typeof Trans>,
  children: ReactNode
}

var x = React.createElement(Trans)

function AuthLayout(props: Props) {
    const {children, title} = props;

    return (
      <div>
        <div>
          <h1>{title}</h1>
          {children}
        </div>
      </div>
    );
}

export default AuthLayout;

Но тогда, если я попытаюсь использовать его в другом файле, как это:

<AuthLayout title={<AnyComponent />}>
  hey <br/>
</AuthLayout>

, это работаетпросто хорошо.Как мне объявить это, чтобы title атрибут принимал только Trans компонент?

...