Как обновить машинописный текст так, чтобы graphql все еще компилировался? - PullRequest
0 голосов
/ 23 февраля 2020

После нового обновления машинописи я начал получать эту ошибку при сборке:

TS2322: Type '({ data, loading, error }: { data: any; loading: any; error: any; }) => Element' is not assignable to type '((result: QueryResult<any, OperationVariables>) => ReactNode) | (((result: QueryResult<any, OperationVariables>) => ReactNode) & string) | ... 5 more ... | (((result: QueryResult<...>) => ReactNode) & ReactPortal)'.
  Type '({ data, loading, error }: { data: any; loading: any; error: any; }) => Element' is not assignable to type '(result: QueryResult<any, OperationVariables>) => ReactNode'.
    Types of parameters '__0' and 'result' are incompatible.
      Type 'QueryResult<any, OperationVariables>' is not assignable to type '{ data: any; loading: any; error: any; }'.
        Property 'error' is optional in type 'QueryResult<any, OperationVariables>' but required in type '{ data: any; loading: any; error: any; }'.

Любой указатель, как это исправить, был бы замечателен. Вроде бы только с последней машинописью 3.8.2. Когда я форсирую предыдущую версию, у меня было 3.7.4, ошибка исчезла.

РЕДАКТИРОВАТЬ: Ошибка происходит из-за компиляции машинописного текста, поэтому в моем случае, когда я запускаю react-scripts-ts build. Кроме того, я пропустил код ошибки TS раньше, поэтому я обновил строку ошибки выше.

Ответы [ 2 ]

1 голос
/ 25 февраля 2020

Если во время сборки возникла похожая проблема, в качестве обходного пути помогло следующее:

import { Query, QueryResult } from 'react-apollo';
    ....
{({ loading, error, data }: QueryResult<any, Record<string, any>>): JSX.Element => ...

Просто замените any на все, что подходит вашему случаю.

0 голосов
/ 07 мая 2020

Это обходной путь, чтобы вы могли продолжить обновление TS.

<Query query={myQuery}>
    {(result) => {
        const { data, loading, error } = result;
        // ...          
    }}
</Query>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...