如何解决 angular 项目和 vega(图表库)之间的不兼容问题?

How to fix issue of incompatibility between angular project and a vega (charts library)?

我目前正在做一个 angular 7 项目,我想为图表添加 vega 库。 我认为的问题是,vega 需要更高版本的打字稿 (3.4.4),而在我的项目中只有 (3.2.2)。

所以当我尝试 运行 项目时,我遇到了这样的错误:

node_modules/vega-lite/build/src/util.d.ts(1,10) 中的错误:错误 TS2305:模块“"P:/projects/ui/project/node_modules/@types/clone"”没有导出成员 'default'。 node_modules/vega-lite/build/src/util.d.ts(2,8):错误 TS1192:模块“"P:/projects/ui/project/node_modules/@types/fast-json-stable-stringify/index"”没有默认导出。

如果您的应用程序中的打字稿版本较低,而另一个库中的打字稿版本较高,请给我一个想法,如何解决此类问题。

谢谢

Angular 7 目前使用 TypeScript 3.2.2,因此您的 Angular TypeScript 版本符合预期。

您可以在 package.json 中手动尝试更改 TypeScript 的版本,然后执行 npm install 看看会发生什么。如果它出错了,那对你来说就是个问题。

另一个建议是您可以切换到 Angular 8.

的候选版本

运行这个...

npm view @angular/cli versions --json

目前它显示有一个名为 8.0.0-rc.2 的版本 8 候选发布

所以你可以

npm i -g @angular/cli@8.0.0-rc.2

然后创建一个新项目,看看Angular 8 是否使用了较新版本的 TypeScript。如果是这样,您可以将代码复制到新的 Angular 8 项目,或者您可以等待预计很快(2019 年 5 月)发布的 Angular 8,然后只需使用

ng update 

升级到 8。

或者,降级 vega 或寻找不同的库。