找不到名称“排除”。 Graphql阿波罗

时间:2018-09-12 13:35:07

标签: graphql angular6 apollo

嗨,我有问题。我试图将Apollo包含在我的Angular 6项目中,当我想运行我的应用程序时,我遇到了一个问题。我收到此错误。

ERROR in node_modules/apollo-angular/types.d.ts(10,58): error TS2304: Cannot find name 'Exclude'.

在tsconfig.json的lib中,我有:

 "lib": [
  "esnext.asynciterable",
  "es2017",
  "dom",
]

但是我仍然收到此错误。我可以更改哪些内容才能运行我的应用程序?

3 个答案:

答案 0 :(得分:2)

遇到相同问题,但使用了另一种方法(hack)。 apollo-angular似乎正在使用tsconfig.json选项中Angular 6无法使用的类型“ Exclude”,因此按如下所示添加“ es5”可以解决问题: "lib": [ "esnext.asynciterable", "es5", "es2017", "dom", ]

如果这样不起作用,则可以直接在node_modules / apollo-angular / types.d.ts文件中声明为以下类型:

declare type Exclude<T, U> = T extends U ? never : T;

最后一个选项是hack,将被任何“ npm安装”或新的角度更新所覆盖,请谨慎使用。

答案 1 :(得分:2)

我遇到了相同的问题,并通过运行以下cmd命令来解决它:

  

npm install typescript@2.9.2-保存精确

答案 2 :(得分:0)

所以我将打字稿版本更新为2.8.1,现在可以使用了。事情现在是我收到来自angular的警告,因为angular期望版本低于2.8.0,但这只是一个警告,我可以将其隐藏。