Apollo-link: Écritures manquantes

Créé le 12 mars 2018  ·  3Commentaires  ·  Source: apollographql/apollo-link

Comportement prévisible
Construction réussie lors de l'exécution de tsc

Comportement réel
tsc renvoie l'erreur suivante :

node_modules/apollo-link-http-common/lib/index.d.ts(3,15): error TS2304: Cannot find name 'Response'.
node_modules/apollo-link-http-common/lib/index.d.ts(8,15): error TS2304: Cannot find name 'Response'.
node_modules/apollo-link-http-common/lib/index.d.ts(37,13): error TS2304: Cannot find name 'GlobalFetch'.
node_modules/apollo-link-http-common/lib/index.d.ts(53,81): error TS2304: Cannot find name 'Response'.
node_modules/apollo-link-http-common/lib/index.d.ts(54,54): error TS2304: Cannot find name 'RequestInfo'.
node_modules/apollo-link-http-common/lib/index.d.ts(54,74): error TS2304: Cannot find name 'RequestInit'.
node_modules/apollo-link-http-common/lib/index.d.ts(54,98): error TS2304: Cannot find name 'Response'.

Une reproduction _simple_
src/index.ts

import 'isomorphic-unfetch';
import { ApolloClient } from 'apollo-client';
import { createHttpLink } from 'apollo-link-http';
import { InMemoryCache } from 'apollo-cache-inmemory';

export const apolloClient = new ApolloClient({
  link: createHttpLink({
    uri: process.env.API_ENDPOINT
  }),
  cache: new InMemoryCache()
});

tsconfig.json

{
  "compilerOptions": {
    "outDir": "build",
    "target": "es6",
    "module": "commonjs",
    "moduleResolution": "node",
    "lib": [
      "esnext.asynciterable",
      "es2015",
      "es2016",
      "es7"
    ],
    "sourceMap": true
  },
  "include": [
    "src/**/*.ts"
  ],
  "exclude": [
    "node_modules/",
    "**/*.spec.ts"
  ]
}

Étiquettes de problème

  • [x] a-reproduction
  • [ ] caractéristique
  • [ ] blocage
  • [ ] bon premier numéro
has-reproduction

Commentaire le plus utile

Avoir es5 ou es6 comme cible du compilateur ne résoudra pas le problème (de plus, es6 comme cible pour commencer). L'ajout de dom à lib , cependant, a corrigé le problème.

Tous les 3 commentaires

@j3ddesign Merci d'avoir ouvert le problème ! Jetez un œil à ce dépôt , en particulier à ce commit . Il ajoute dom à la bibliothèque, qui contient ces types. Ou vous pouvez définir le target de votre option de compilation sur es5 ou es6, qui inclura également ces dom. Comment pouvons-nous aider à rendre cela plus clair? Y a-t-il une section dans les documents que vous aimeriez voir?

Ah intéressant. Je l'utilise dans un projet de nœud, je n'avais donc pas ajouté dom à mon tsconfig.
Pour ce qui est de rendre les choses plus claires, il peut être utile de les mentionner dans le paragraphe Installation sur https://www.apollographql.com/docs/link/#installation
C'est la première page à laquelle je suis allé en essayant de résoudre ce problème :+1:

Merci pour un excellent package, cela a été d'une grande aide pour faire avancer les choses rapidement :)

Avoir es5 ou es6 comme cible du compilateur ne résoudra pas le problème (de plus, es6 comme cible pour commencer). L'ajout de dom à lib , cependant, a corrigé le problème.

Cette page vous a été utile?
0 / 5 - 0 notes