嗨,我有问题。我试图将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",
]
但是我仍然收到此错误。我可以更改哪些内容才能运行我的应用程序?
答案 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,但这只是一个警告,我可以将其隐藏。