<p>apollo-link 1.2.5 / 1.2.6 causa erros de compilação do typescript</p>

Criado em 16 jan. 2019  ·  39Comentários  ·  Fonte: apollographql/apollo-link

Introduzido com este PR:
https://github.com/apollographql/apollo-link/pull/804

O ExecutionResult<TData> gera erros em compiladores modernos de texto datilografado.

Meu erro de digitação:

../node_modules/apollo-link/lib/types.d.ts:22:56 - error TS2315: Type 'ExecutionResult' is not generic.

22 }, C = Record<string, any>, E = Record<string, any>> = ExecutionResult<TData> & {
                                                          ~~~~~~~~~~~~~~~~~~~~~~


Found 1 error.

Comentários muito úteis

Descobri que o downgrade do graphql de 15.0.0 -> 14.6.0 resolve o problema.

Todos 39 comentários

Ok, parece que o código ainda está em Definitivamente Typed, então o código introduzido em #804 ainda deve estar correto.

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/graphql/execution/execute.d.ts#L43

/**
 * The result of GraphQL execution.
 *
 *   - `errors` is included when any errors occurred as a non-empty array.
 *   - `data` is the result of a successful execution of the query.
 */
export interface ExecutionResult<TData = ExecutionResultDataDefault> {
    errors?: ReadonlyArray<GraphQLError>;
    data?: TData;
}

Você precisará certificar-se de que seus @types/graphql estejam atualizados.

@syndesis descobriu que estava usando @types/graphql 0.12.6, que tem 10 meses. https://www.npmjs.com/package/@types/graphql

Olhando para ver o requisito de versão mínima agora.

Justo o suficiente se for necessária uma nova lib graphql, também posso estar em uma versão mais antiga devido a outras dependências de biblioteca.

@gaberudy estamos conversando em #contribuindo agora mesmo no slack se você quiser participar

@gaberudy você também está usando o apollo-link-dedup?

Eu tenho esse mesmo problema ao importar o pacote graphql-tools 😢

Você pode contornar esse problema com uma seção resolutions como esta em seu package.json:

"resolutions": {
    "apollo-link-dedup": "^1.0.13",
    "@types/graphql": "^14.0.0"
  }

Fechando isso uma vez que está resolvido, se alguém ainda tiver um problema após a correção proposta com as resoluções, sinta-se à vontade para reabrir.

Você pode contornar esse problema com uma seção resolutions como esta em seu package.json:

"resolutions": {
    "apollo-link-dedup": "^1.0.13",
    "@types/graphql": "^14.0.0"
  }

Infelizmente, isso não resolveu o problema para mim

este problema ainda não foi resolvido

Isso está acontecendo para mim depois de atualizar para os pacotes mais recentes. Podemos reabrir isso, por favor?

A resolução proposta não funciona e não estou usando dedup.

Eu tenho o mesmo problema.

Eu já tentei:

  • solução de resolução.
  • atualizando apollo e graphql

alguma outra sugestão?

alguma correção para este problema?

@qin-guan você deve atualizar suas dependências, mas certifique-se de atualizar também as dependências transitivas. A maneira mais fácil de fazer isso é remover node_modules e o arquivo de bloqueio e instalar novamente. Se você não remover o arquivo de bloqueio, poderá ficar preso a uma versão antiga (consulte https://github.com/yarnpkg/yarn/issues/4986).

Descobri que o downgrade do graphql de 15.0.0 -> 14.6.0 resolve o problema.

@PowerKiKi , a solução de @david-wb funciona para mim, atualizar meus deps não funcionou

Este pacote quebra com a versão graphql: ^15.0.0 mais recente. Alguma idéia de como consertar o último?

@johannesschobel tente ler antes de comentar. Você precisará fazer o downgrade por enquanto.

Caro @OmgImAlexis ,
sim, eu sei - e li a "solução alternativa atual" sobre o downgrade para 14.6.0 . No entanto, este é um obstáculo atual para mim, pois outros pacotes já dependem de 15.0 , então estou bastante preso.

Tudo de bom

Essa questão é MUITO ruim. Como ainda não resolveu??

Acabei de me deparar com isso também...

A única maneira de contornar isso era fazer o downgrade do graphql para 14.6.0

Encontrei esse erro porque tenho um diretório functions para funções de nuvem dentro da raiz do meu projeto, que tem seu próprio node_modules para o cliente. O cliente está usando a série 14 e o servidor está usando a série 15.

Resolvi o problema com patch-package

adicione um arquivo chamado functions/patches/graphql+15.0.0.patch com este conteúdo:

diff --git a/node_modules/graphql/execution/execute.d.ts b/node_modules/graphql/execution/execute.d.ts
index 46a1bc6..4ddbfb5 100644
--- a/node_modules/graphql/execution/execute.d.ts
+++ b/node_modules/graphql/execution/execute.d.ts
@@ -37,15 +37,20 @@ export interface ExecutionContext {
   errors: Array<GraphQLError>;
 }

+export interface ExecutionResultDataDefault {
+  [key: string]: any;
+}
+
 /**
  * The result of GraphQL execution.
  *
  *   - `errors` is included when any errors occurred as a non-empty array.
  *   - `data` is the result of a successful execution of the query.
  */
-export interface ExecutionResult {
+// TS_SPECIFIC: TData and ExecutionResultDataDefault
+export interface ExecutionResult<TData = ExecutionResultDataDefault> {
   errors?: ReadonlyArray<GraphQLError>;
-  data?: { [key: string]: any } | null;
+  data?: TData | null;
 }

 export type ExecutionArgs = {

em seguida, adicione npx patch-package a postinstall

o patch afeta apenas os tipos de ts, então parece à primeira vista ser uma solução segura até que o upstream resolva o problema.

Sim, eu tive que voltar para

"graphql": "^14.6.0"

A partir de

"graphql": "10.0.0",

Para fazer isso funcionar.

@gaberudy , algum dia veremos uma atualização disso? Já está aberto há 3 meses.

Também pode ser bloqueado para que não continuemos recebendo comentários "Eu tive que reverter"?

Eu também tive que fazer o downgrade de 15 para 14.6.0

Isso foi possivelmente corrigido por https://github.com/apollographql/apollo-link/pull/1263 , mas ainda não foi totalmente propagado para pacotes que dependem dele?

Caro @abernix , obrigado por apontar isso. Parece que o problema original foi resolvido e corrigido. No entanto, apollo-client não e agora lança os mesmos erros :laughing:

@OmgImAlexis

vamos ver uma atualização para isso? Já está aberto há 3 meses.

Acho que você perdeu o ano de 2019 ;-) Já faz mais de um ano.

As resoluções e versões de dependência abaixo corrigiram para mim - o mais importante é a resolução apollo-link para ^1.2.14 . Isso forçará qualquer pacote usando apollo-link a usar a versão mais recente (independentemente do que especifica em suas dependências). Para mim, foi o pacote aws-appsync fixado em "apollo-link": "1.2.3"

  "resolutions": {
    "apollo-link": "^1.2.14"
  },
  "dependencies": {
    "graphql": "^14.6.0",
  }

Acabei de receber este problema. Teve que rebaixar também. Como pode um problema desses ainda estar aqui?

De fato .. fazer o downgrade para [email protected] corrigiu o problema para mim também.

Tendo esse problema de tipo genérico com typescript em [email protected]

@david-wb obrigado funcionando bem após o downgrade para 14.6.0

ERROR in node_modules/apollo-client/core/watchQueryOptions.d.ts:56:32 - error TS2315: Type 'ExecutionResult' is not generic.       

56     refetchQueries?: ((result: ExecutionResult<T>) => RefetchQueryDescription) | RefetchQueryDescription;
                                  ~~~~~~~~~~~~~~~~~~
node_modules/apollo-client/core/LocalState.d.ts:40:23 - error TS2315: Type 'ExecutionResult' is not generic.

40         remoteResult: ExecutionResult<TData>;
                         ~~~~~~~~~~~~~~~~~~~~~~
node_modules/apollo-client/core/LocalState.d.ts:44:17 - error TS2315: Type 'ExecutionResult' is not generic.

44     }): Promise<ExecutionResult<TData>>;
                   ~~~~~~~~~~~~~~~~~~~~~~

Eu tive o erro acima com "graphql": "^15.0.0" , depois de fazer o downgrade para "graphql": "^14.6.0" e fazer npm install funcionou para mim

Isso foi abordado em https://github.com/apollographql/apollo-client/pull/6258. Se alguém ainda estiver enfrentando esse problema, tente atualizar para [email protected] . Obrigado!

usando [email protected] não funcionou para mim

@moritzewert você ainda está vendo erros de ExecutionResult ou algo mais? Você pode postar a saída da execução: npx envinfo<strong i="7">@latest</strong> --preset apollo

Olá @hwillson ,
Estou vendo esse problema depois de atualizar o graphql de 14.6.0 para 15.0.0 .
O erro:

Type 'ExecutionResult' is not generic.
    21 | export declare type FetchResult<TData = {
    22 |     [key: string]: any;
  > 23 | }, C = Record<string, any>, E = Record<string, any>> = ExecutionResult<TData> & {
       |                                                        ^
    24 |     extensions?: E;
    25 |     context?: C;
    26 | };
Version: typescript 3.9.3

Aqui está meu ambiente:

$ npx envinfo<strong i="14">@latest</strong> --preset apollo
npx: installed 1 in 1.063s

  System:
    OS: macOS 10.15.4
  Binaries:
    Node: 10.19.0 - ~/.nvm/versions/node/v10.19.0/bin/node
    Yarn: 1.22.4 - /usr/local/bin/yarn
    npm: 6.14.1 - ~/code/frontend/node_modules/.bin/npm
  Browsers:
    Chrome: 83.0.4103.61
    Edge: 83.0.478.44
    Firefox: 76.0.1
    Safari: 13.1
  npmPackages:
    apollo-boost: ^0.4.7 => 0.4.9
    apollo-cache-inmemory: ^1.6.6 => 1.6.6
    apollo-client: ^2.6.10 => 2.6.10
    apollo-codegen: ^0.20.2 => 0.20.2
    apollo-link: ^1.2.14 => 1.2.14
    apollo-link-context: ^1.0.20 => 1.0.20
    apollo-link-http: ^1.5.17 => 1.5.17
    apollo-link-state: ^0.4.2 => 0.4.2
    apollo-link-ws: ^1.0.20 => 1.0.20

Obrigado!

Esta página foi útil?
0 / 5 - 0 avaliações