В версии 0.8.0-beta.0
реализация RestLink
нарушена. Я выполнил это руководство, но первый блок кода уже сломался:
// 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,
});
приводит к следующей ошибке TypeScript:
Type 'RestLink' is missing the following properties from type 'ApolloLink': split, concat
Детали:
{
"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"
}
]
}
Это поведение можно воспроизвести на примере codeandbox, обновив зависимость apollo-link-rest
до 0.8.0-beta.0
.
Возврат к v0.7.3
решает проблему.
Спасибо @lextas - бета-версия предназначена только для использования с Apollo-client 3.0 (и соответствующими пакетами Apollo в совместимых версиях).
К сожалению, из-за мировых событий выпуск Apollo-client 3.0 был отложен, и в настоящее время я не знаю, когда они планируют выпуск.
Хорошо, я этого не знал. Я просто следил за документами. Закрою вопрос. Хорошо, если это задокументировано для тех, кто сталкивается с той же проблемой. Вероятно, это случается с большим количеством людей, поскольку многие люди просто npm install
(или yarn
) последнюю версию, и она не будет работать.
Хм, а какие версии использовать? Я просто выполнил инструкции по настройке и столкнулся с этой проблемой.
"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 - с этими версиями других пакетов вы хотите "apollo-link-rest": "^0.7.0"
Самый полезный комментарий
Хорошо, я этого не знал. Я просто следил за документами. Закрою вопрос. Хорошо, если это задокументировано для тех, кто сталкивается с той же проблемой. Вероятно, это случается с большим количеством людей, поскольку многие люди просто
npm install
(илиyarn
) последнюю версию, и она не будет работать.