<p>apollo-link 1.2.5 /1.2.6はtypescriptコンパイルエラーを引き起こします</p>

作成日 2019年01月16日  ·  39コメント  ·  ソース: apollographql/apollo-link

このPRで紹介されました:
https://github.com/apollographql/apollo-link/pull/804

ExecutionResult<TData>は、最新のタイプスクリプトコンパイラでエラーをスローします。

私のタイプスクリプトエラー:

../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.

最も参考になるコメント

私は、graphqlを15.0.0-> 14.6.0からダウングレードすると問題が解決することを発見しました。

全てのコメント39件

わかりました。コードはまだDefinitelyTypedにあるようです。したがって、#804で導入されたコードはまだ正しいはずです。

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

@ types / graphqlが最新であることを確認する必要があります。

@syndesisは、生後10か月の@ types /graphql0.12.6を使用していることを発見しました。 https://www.npmjs.com/package/@types/graphql

最小バージョンの要件を今すぐ確認してください。

新しいgraphqllibが必要な場合は十分に公平ですが、他のライブラリの依存関係のために古いバージョンを使用している可能性もあります。

@gaberudy参加したい場合は、今すぐSlackで#contributingでチャットしています

@gaberudyもapollo-link-dedupを使用していますか?

graphql-toolsパッケージをインポートするときにも同じ問題が発生します😢

package.jsonの次のようなresolutionsセクションを使用して、この問題を回避できます。

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

解決されたのでこれを閉じます。解決策の提案された修正後も問題が解決しない場合は、自由に再開してください。

package.jsonの次のようなresolutionsセクションを使用して、この問題を回避できます。

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

残念ながら、これは私にとって問題を解決しませんでした

この問題はまだ解決されませんでした

これは、最新のパッケージにアップグレードした後に発生します。 これを再開してもらえますか?

提案された解決策は機能せず、重複排除を使用していません。

同じ問題があります。

私はすでに試しました:

  • 解決ソリューション。
  • apolloとgraphqlのアップグレード

他に何か提案はありますか?

この問題の修正はありますか?

@ qin-guan依存関係をアップグレードする必要がありますが、推移的な依存関係もアップグレードするようにしてください。 これを行う最も簡単な方法は、node_modulesとロックファイルを削除してから、再度インストールすることです。 ロックファイルを削除しないと、実際には古いバージョンでスタックする可能性があります(https://github.com/yarnpkg/yarn/issues/4986を参照)。

私は、graphqlを15.0.0-> 14.6.0からダウングレードすると問題が解決することを発見しました。

@ PowerKiKi 、@ david-wbのソリューションは私のために機能し、私のdepsのアップグレードは機能しませんでした

このパッケージは、最新のgraphql: ^15.0.0バージョンで壊れます。 後者を修正する方法について何かアイデアはありますか?

@johannesschobelは、コメントする前に読んでみてください。 今のところダウングレードする必要があります。

親愛なる@OmgImAlexis
ええ、私は知っています-そして私は14.6.0へのダウングレードに関する「現在の回避策」を読みました。 ただし、他のパッケージはすでに15.0に依存しているため、これは私にとって現在の障害であり、私はかなり行き詰まっています。

ではごきげんよう

この問題は本当に悪いです。 どうしてまだ直っていないの?

これにも出くわしました...

これを回避する唯一の方法は、graphqlを14.6.0にダウングレードすることでした。

このエラーが発生したのは、プロジェクトルート内にクラウド関数用のfunctionsディレクトリがあり、クライアント用に独自のnode_modulesがあるためです。 クライアントは14シリーズを使用しており、サーバーは15シリーズを使用しています。

patch-packageで問題を解決しました

このコンテンツを含むfunctions/patches/graphql+15.0.0.patchというファイルを追加します。

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 = {

次に、 npx patch-packagepostinstallに追加します

パッチはtsタイピングにのみ影響するため、アップストリームが問題を解決するまで、最初は安全な解決策であるように思われます。

はい、私はに戻らなければなりませんでした

"graphql": "^14.6.0"

から

"graphql": "10.0.0",

これを機能させるため。

@gaberudyこれまでに更新が表示されますか? 現在3ヶ月間営業しております。

また、「元に戻さなければならなかった」というコメントが表示され続けないようにロックすることはできますか?

また、15から14.6.0にダウングレードする必要がありました

これはhttps://github.com/apollographql/apollo-link/pull/1263によって修正された可能性がありますが、それに依存するパッケージにはまだ完全には反映されていませんか?

親愛なる@abernix 、これを指摘してくれてありがとう。 元の問題が解決され、修正されたようです。 ただし、 apollo-clientは同じエラーをスローしませんでしたが、現在は同じエラーをスローします:laughing:

@OmgImAlexis

これに対する更新が表示されることはありますか? 現在3ヶ月間営業しております。

2019年を逃したと思います;-)もう1年以上経ちました。

以下の解像度と依存関係のバージョンは私のためにそれを修正しました-最も重要なのはapollo-linkの解像度を^1.2.14に修正しました。 これにより、apollo-linkを使用するすべてのパッケージが、(依存関係で指定されているものに関係なく)最新バージョンを使用するように強制されます。 私にとっては、 「apollo-link」に固定されたaws-appsyncパッケージでした:「1.2.3」

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

この問題が発生しました。 ダウングレードもしなければなりませんでした。 どうしてそのような問題がまだここにあるのでしょうか?

確かに..graphql @ 14.6.0にダウングレードすると、私にとっても問題が修正されました。

[email protected]のtypescriptでこのジェネリック型の問題が発生している

@ david-wb 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>>;
                   ~~~~~~~~~~~~~~~~~~~~~~

"graphql": "^14.6.0"にダウングレードし、$ npm install $を実行した後、 "graphql": "^15.0.0"で上記のエラーが発生しました。

これはhttps://github.com/apollographql/apollo-client/pull/6258で対処されています。 それでもこの問題が発生する場合は、 [email protected]に更新してみてください。 ありがとう!

[email protected]を使用してもうまくいきませんでした

@moritzewertまだExecutionResultエラーなどが表示されていますか? ランニングの出力を投稿できますか: npx envinfo<strong i="7">@latest</strong> --preset apollo

こんにちは@hwillson
graphqlを14.6.0から15.0.0にアップグレードした後、この問題が発生します。
エラー:

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

これが私の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

ありがとう!

このページは役に立ちましたか?
0 / 5 - 0 評価