Na versão 0.8.0-beta.0
a implementação de RestLink
está quebrada. Eu segui este tutorial, mas o primeiro bloco de código já quebra:
// Create a RestLink for the Github API
const link = new RestLink({ uri: 'https://api.github.com' });
// Configure the ApolloClient with the recommended cache and our RestLink
const client = new ApolloClient({
cache: new InMemoryCache(),
link,
});
resulta no seguinte erro de TypeScript:
Type 'RestLink' is missing the following properties from type 'ApolloLink': split, concat
detalhes:
{
"resource": "/*redacted*/src/file.ts",
"owner": "typescript",
"code": "2739",
"severity": 8,
"message": "Type 'RestLink' is missing the following properties from type 'ApolloLink': split, concat",
"source": "ts",
"startLineNumber": 11,
"startColumn": 3,
"endLineNumber": 11,
"endColumn": 7,
"relatedInformation": [
{
"startLineNumber": 17,
"startColumn": 5,
"endLineNumber": 17,
"endColumn": 9,
"message": "The expected type comes from property 'link' which is declared here on type 'ApolloClientOptions<NormalizedCacheObject>'",
"resource": "/*redacted*/node_modules/apollo-client/ApolloClient.d.ts"
}
]
}
Este comportamento é reproduzível no exemplo codesandbox atualizando a dependência apollo-link-rest
para 0.8.0-beta.0
.
Reverter para v0.7.3
resolve o problema.
Obrigado @lextas - o beta é destinado apenas para uso com Apollo-client 3.0 (e pacotes Apollo relacionados em versões compatíveis).
Infelizmente, devido a eventos mundiais, o Apollo-client 3.0 foi adiado e atualmente não estou ciente de quando eles planejam ser lançados.
Ok, eu não sabia disso. Eu apenas segui os documentos. Vou encerrar o problema. É bom ter isso documentado para outras pessoas que tenham o mesmo problema. Provavelmente acontece com mais pessoas, já que muitas pessoas apenas npm install
(ou yarn
) a versão mais recente e não funcionará.
Hmm, então quais versões devo usar? Acabei de seguir o guia de configuração para isso e estou tendo esse problema.
"apollo-cache-inmemory": "^1.6.6",
"apollo-client": "^2.6.10",
"apollo-link": "^1.2.14",
"apollo-link-rest": "^0.8.0-beta.0",
@ Andrew1431 - com essas versões dos outros pacotes, você quer "apollo-link-rest": "^0.7.0"
Comentários muito úteis
Ok, eu não sabia disso. Eu apenas segui os documentos. Vou encerrar o problema. É bom ter isso documentado para outras pessoas que tenham o mesmo problema. Provavelmente acontece com mais pessoas, já que muitas pessoas apenas
npm install
(ouyarn
) a versão mais recente e não funcionará.