<p>apollo-link-http-common references ketik GlobalFetch, untuk dihapus di TypeScript 3.6</p>

Dibuat pada 19 Jun 2019  ·  3Komentar  ·  Sumber: apollographql/apollo-link

Perilaku yang Diharapkan
Tidak ada kesalahan saat mengkompilasi Jenis yang Diketik Pasti untuk apollo-upload-client :

import { ApolloLink } from "apollo-link";
import { HttpOptions } from "apollo-link-http-common";
export { ReactNativeFile } from "extract-files";
export function createUploadLink(linkOptions?: HttpOptions): ApolloLink;

Perilaku Sebenarnya
Kesalahan dalam jenis apollo-link-http-common, yang merujuk ke GlobalFetch . GlobalFetch akan dihapus di TypeScript 3.6 mendukung WindowOrWebWorker, yang memiliki metode fetch yang sama :

export interface HttpOptions {
    // ........
    /**
     * A `fetch`-compatible API to use when making requests.
     */
    fetch?: GlobalFetch['fetch'];
    // .........
}

Reproduksi _sederhana_

npm install -g typescript<strong i="21">@next</strong>
cd packages/apollo-link-http-common/src
tsc

Memberikan kesalahan:

index.ts:74:11 - error TS2304: Cannot find name 'GlobalFetch'.

74   fetch?: GlobalFetch['fetch'];
             ~~~~~~~~~~~

index.ts:174:39 - error TS2304: Cannot find name 'GlobalFetch'.

174 export const checkFetcher = (fetcher: GlobalFetch['fetch']) => {

(Ini bukan cara yang tepat untuk membuat file ini, jadi ada 4 kesalahan lainnya. Anda hanya akan melihat 4 kesalahan itu jika Anda menggunakan typescript@latest )

Cara mengatasinya adalah mengganti GlobalFetch dengan WindowOrWorkerGlobalScope . Saya akan memasang PR yang melakukan ini segera.

Komentar yang paling membantu

@sandersn @benjamn saat menginstal apollo-boost di server node, kami masih mendapatkan masalah ini. Masalahnya tampaknya ada pada file deklarasi

node_modules/apollo-boost/lib/index.d.ts:25:13 - error TS2304: Cannot find name 'GlobalFetch'.

25     fetch?: GlobalFetch['fetch'];
               ~~~~~~~~~~~

mungkin apollo-boost perlu diperbarui juga?

Semua 3 komentar

@sandersn @benjamn saat menginstal apollo-boost di server node, kami masih mendapatkan masalah ini. Masalahnya tampaknya ada pada file deklarasi

node_modules/apollo-boost/lib/index.d.ts:25:13 - error TS2304: Cannot find name 'GlobalFetch'.

25     fetch?: GlobalFetch['fetch'];
               ~~~~~~~~~~~

mungkin apollo-boost perlu diperbarui juga?

Saya menambahkan ke src/shims-tsx.d.ts saya ini untuk menghilangkan peringatan ini
declare type GlobalFetch { fetch(input: RequestInfo, init?: RequestInit): Promise<Response>; };

Apakah halaman ini membantu?
0 / 5 - 0 peringkat