Машинопись |Предупреждение о недостающем типе возвращаемого значения, ESLint - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть REACT-STATELESS-COMPONENT, в проекте с TypeScript.У него есть ошибка, говорящая, что

Missing return type on function.eslint(@typescript-eslint/explicit-function-return-type)

Я не уверен, что он хочет, чтобы я сделал.Вот мой код:

import React, { Fragment} from 'react';
import IProp from 'dto/IProp';

export interface Props {
  prop?: IProp;
}

const Component = <T extends object>({ prop }: Props & T) => (
  <Fragment>
    {prop? (
      <Fragment>
        Some Component content..
      </Fragment>
    ) : null}
  </Fragment>
);

LicenseInfo.defaultProps: {};

export default Component;

Можете ли вы сказать мне, что мне нужно сделать.Мне нужно прочитать о TS, но в настоящее время я не понимаю вообще.И я не могу совершить это сейчас.

Ответы [ 3 ]

0 голосов
/ 21 февраля 2019

Для типа возвращаемого значения функции следует после аргументов:

({ prop }: Props & T): JSX.Element => {}

JSX.Element - это то, что выведет TypeScript, это довольно безопасная ставка.

Если вам интересно,вы должны увидеть, что TypeScript выводит как возвращаемый тип, при наведении курсора на Component, при этом будет показана вся подпись.

0 голосов
/ 18 июля 2019

Вот как я обычно объявляю комп, используя машинопись:

  import * as React from 'react';

    type MyComponentProps = {
    myStringProp: String,
    myOtherStringProp: String
    };

    const MyComponent: React.FunctionComponent<MyComponentProps> = ({myStringProp, myOtherStringProp}): JSX.Element => {
        return (
            <div>
                <h1>This is My Component</h1>
            </div>
        );
    };


    export default MyComponent;
0 голосов
/ 21 февраля 2019

Я бы порекомендовал использовать типы, предоставляемые реагировать;они будут включать тип возврата.Если вы используете последнюю версию реагирования (16.8.0 или более позднюю), сделайте следующее:

const Component: React.FunctionComponent<Props> = (props: Props) => (

До 16.8 вместо этого вы должны сделать:

const Component: React.SFC<Props> = (props: Props) => (

Где SFCрасшифровывается как «функциональный компонент без сохранения состояния».Они изменили имя, поскольку компоненты функций больше не обязательно сохраняют состояние.

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