<p>apollo-link 1.2.5 / 1.2.6 verursacht Schreibfehler beim Kompilieren</p>

Erstellt am 16. Jan. 2019  ·  39Kommentare  ·  Quelle: apollographql/apollo-link

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.

Hilfreichster Kommentar

Ich habe festgestellt, dass ein Downgrade von graphql von 15.0.0 -> 14.6.0 das Problem behebt.

Alle 39 Kommentare

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.

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;
}

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:

  • Auflösungslösung.
  • Upgrade von Apollo & Graphql

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!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen