Eingeführt mit dieser PR:
https://github.com/apollographql/apollo-link/pull/804
Das ExecutionResult<TData>
wirft Fehler in modernen Typoskript-Compilern.
Mein Tippfehler:
../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.
Ok, es sieht so aus, als wäre der Code immer noch auf DefinitelyTyped, also sollte der in #804 eingeführte Code immer noch korrekt sein.
/**
* 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;
}
Sie müssen sicherstellen, dass Ihre @types/graphql auf dem neuesten Stand sind.
@syndesesis fand heraus, dass er @types/graphql 0.12.6 verwendete, das 10 Monate alt ist. https://www.npmjs.com/package/@types/graphql
Ich möchte jetzt die Mindestversionsanforderung sehen.
Fair genug, wenn eine neuere graphql lib benötigt wird, bin ich möglicherweise auch auf einer älteren Version aufgrund anderer Bibliotheksabhängigkeiten.
@gaberudy wir chatten gerade in #contributing in Slack, wenn du mitmachen möchtest
@gaberudy verwendest du auch apollo-link-dedup?
Ich habe das gleiche Problem beim Importieren des Pakets graphql-tools
😢
Sie können dieses Problem mit einem resolutions
-Abschnitt wie diesem in Ihrer package.json umgehen:
"resolutions": {
"apollo-link-dedup": "^1.0.13",
"@types/graphql": "^14.0.0"
}
Schließen Sie dies, da es gelöst ist. Wenn jemand nach dem vorgeschlagenen Fix mit Lösungen immer noch ein Problem hat, können Sie es gerne wieder öffnen.
Sie können dieses Problem mit einem
resolutions
-Abschnitt wie diesem in Ihrer package.json umgehen:"resolutions": { "apollo-link-dedup": "^1.0.13", "@types/graphql": "^14.0.0" }
Leider hat dies das Problem bei mir nicht behoben
Dieses Problem wurde immer noch nicht behoben
Dies passiert bei mir nach dem Upgrade auf die neuesten Pakete. Können wir das bitte wieder öffnen?
Die vorgeschlagene Auflösung funktioniert nicht und ich verwende keine Deduplizierung.
Ich habe das gleiche Problem.
Ich habe bereits versucht:
Irgendwelche anderen Vorschläge?
irgendwelche Lösungen für dieses Problem?
@qin-guan Sie sollten Ihre Abhängigkeiten aktualisieren, aber stellen Sie sicher, dass Sie auch transitive Abhängigkeiten aktualisieren. Der einfachste Weg, dies zu tun, besteht darin, node_modules und die Sperrdatei zu entfernen und dann erneut zu installieren. Wenn Sie die Sperrdatei nicht entfernen, bleiben Sie möglicherweise bei einer alten Version hängen (siehe https://github.com/yarnpkg/yarn/issues/4986).
Ich habe festgestellt, dass ein Downgrade von graphql von 15.0.0 -> 14.6.0 das Problem behebt.
@PowerKiKi , @david-wbs Lösung funktioniert für mich, das Upgrade meiner Deps hat nicht funktioniert
Dieses Paket bricht mit der neuesten Version graphql: ^15.0.0
zusammen. Irgendwelche Ideen, wie man letzteres beheben kann?
@johannesschobel versuchen und lesen, bevor Sie kommentieren. Sie müssen vorerst ein Downgrade durchführen.
Liebe @OmgImAlexis ,
Ja, ich weiß - und ich habe die "aktuelle Problemumgehung" bezüglich des Downgrades auf 14.6.0
gelesen. Dies ist jedoch ein aktuelles Hindernis für mich, da andere Pakete bereits von 15.0
abhängen, sodass ich ziemlich feststecke.
Alles Gute
Dieses Problem ist WIRKLICH schlimm. Wie ist es immer noch nicht behoben??
Bin auch gerade darauf gestoßen...
Die einzige Möglichkeit für mich, dies zu umgehen, bestand darin, graphql auf 14.6.0
herunterzustufen
Ich bin auf diesen Fehler gestoßen, weil ich ein functions
-Verzeichnis für Cloud-Funktionen in meinem Projektstamm habe, das ein eigenes node_modules
für den Client hat. Der Client verwendet 14-Serien und der Server 15-Serien.
Ich habe das Problem mit patch-package
gelöst
füge eine Datei namens functions/patches/graphql+15.0.0.patch
mit diesem Inhalt hinzu:
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 = {
Fügen Sie dann npx patch-package
zu postinstall
hinzu
Der Patch betrifft nur ts-Typisierungen, daher scheint es auf den ersten Blick eine sichere Lösung zu sein, bis Upstream das Problem löst.
Ja, ich musste zurückgreifen
"graphql": "^14.6.0"
Von
"graphql": "10.0.0",
Damit das funktioniert.
@gaberudy werden wir jemals ein Update dazu sehen? Es ist jetzt seit 3 Monaten geöffnet.
Kann es auch gesperrt werden, damit wir nicht ständig "Ich musste zurücksetzen"-Kommentare erhalten?
Ich musste auch von 15 auf 14.6.0 downgraden
Wurde dies möglicherweise von https://github.com/apollographql/apollo-link/pull/1263 behoben, aber noch nicht vollständig an Pakete weitergegeben, die davon abhängen?
Lieber @abernix , danke für den Hinweis. Sieht so aus, als ob das ursprüngliche Problem angesprochen und behoben wurde. Allerdings hat apollo-client
nicht und wirft jetzt die gleichen Fehler :lachen:
@OmgImAlexis
Werden wir jemals ein Update dazu sehen? Es ist jetzt seit 3 Monaten geöffnet.
Ich glaube du hast das Jahr 2019 verpasst ;-) Es ist schon über ein Jahr her.
Die folgenden Auflösungen und Abhängigkeitsversionen haben es für mich behoben - am wichtigsten ist die apollo-link
Auflösung zu ^1.2.14
. Dadurch wird jedes Paket, das apollo-link verwendet, gezwungen, die neueste Version zu verwenden (unabhängig davon, was es in seinen Abhängigkeiten angibt). Für mich war es das aws-appsync
-Paket, das an "apollo-link" gepinnt wurde: "1.2.3"
"resolutions": {
"apollo-link": "^1.2.14"
},
"dependencies": {
"graphql": "^14.6.0",
}
Ich habe gerade dieses Problem. Musste auch downgraden. Wie kann ein solches Problem immer noch hier sein?
In der Tat ... ein Downgrade auf [email protected] hat das Problem auch für mich behoben.
Dieses generische Typproblem mit Typoskript auf [email protected]
@david-wb danke, funktioniert gut nach dem Downgrade auf 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>>;
~~~~~~~~~~~~~~~~~~~~~~
Ich hatte den obigen Fehler mit "graphql": "^15.0.0"
, nachdem ich auf "graphql": "^14.6.0"
heruntergestuft hatte und npm install
für mich funktionierte
Dies wurde in https://github.com/apollographql/apollo-client/pull/6258 behandelt. Wenn dieses Problem weiterhin auftritt, versuchen Sie bitte, auf [email protected]
zu aktualisieren. Danke!
Die Verwendung von [email protected] hat bei mir nicht funktioniert
@moritzewert siehst du immer noch ExecutionResult
Fehler oder etwas anderes? Können Sie die Ausgabe von Running posten: npx envinfo<strong i="7">@latest</strong> --preset apollo
Hallo @hwillson ,
Ich sehe dieses Problem nach dem Upgrade von graphql von 14.6.0
auf 15.0.0
.
Der Fehler:
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
Hier ist meine envinfo:
$ 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
Danke!
Hilfreichster Kommentar
Ich habe festgestellt, dass ein Downgrade von graphql von 15.0.0 -> 14.6.0 das Problem behebt.