Definitelytyped: [d3] 模块“d3-scale”已经导出了一个名为“interpolateCool”的成员。 考虑明确地重新导出以解决歧义。

创建于 2018-03-27  ·  3评论  ·  资料来源: DefinitelyTyped/DefinitelyTyped

  • 我尝试使用@types/d3包并且遇到了问题。
  • 作者: @tomwanzek @gustavderdrache @borisyankov

我正在尝试从 d3 v4.x 更新到 5.0,具有以下依赖项:

"d3": "5.0.0",
"@types/d3": "5.0.0",

当我编译应用程序时,我看到:

node_modules/@types/d3/index.d.ts(37,1) 中的错误:错误 TS2308:模块“d3-scale”已导出名为“interpolateCool”的成员。 考虑明确地重新导出以解决歧义。
node_modules/@types/d3/index.d.ts(37,1): 错误 TS2308: 模块“d3-scale”已经导出了一个名为“interpolateCubehelixDefault”的成员。 考虑明确地重新导出以解决歧义。
node_modules/@types/d3/index.d.ts(37,1): 错误 TS2308: 模块“d3-scale”已经导出了一个名为“interpolateInferno”的成员。 考虑明确地重新导出以解决歧义。
node_modules/@types/d3/index.d.ts(37,1): 错误 TS2308: 模块“d3-scale”已经导出了一个名为“interpolateMagma”的成员。 考虑明确地重新导出以解决歧义。
node_modules/@types/d3/index.d.ts(37,1): 错误 TS2308: 模块“d3-scale”已经导出了一个名为“interpolatePlasma”的成员。 考虑明确地重新导出以解决歧义。
node_modules/@types/d3/index.d.ts(37,1): 错误 TS2308: 模块“d3-scale”已经导出名为“interpolateRainbow”的成员。 考虑明确地重新导出以解决歧义。
node_modules/@types/d3/index.d.ts(37,1): 错误 TS2308: 模块“d3-scale”已经导出了一个名为“interpolateViridis”的成员。 考虑明确地重新导出以解决歧义。
node_modules/@types/d3/index.d.ts(37,1): 错误 TS2308: 模块“d3-scale”已经导出了一个名为“interpolateWarm”的成员。 考虑明确地重新导出以解决歧义。
node_modules/@types/d3/index.d.ts(37,1): 错误 TS2308: 模块“d3-scale”已经导出名为“schemeCategory10”的成员。 考虑明确地重新导出以解决歧义。

如果有什么不同,我的应用程序是使用 angular-cli (webpack) 编译的,它在 tsconfig.app.json 中的types数组中引用了d3

我不确定这是否以某种方式特定于我的设置,或者它是否是一个错误 - 因此感谢任何对此有更多了解的人的帮助。

最有用的评论

谢谢@tomwanzek - 是的,它似乎与我的 yarn.lock 文件中引用的依赖项存在某种奇怪的版本冲突。

最初,我只是更新了package.json的版本号并运行了yarn install ,无论出于何种原因导致上述错误。

但是,首先删除 d3 和类型定义,然后将包重新添加到最新版本似乎可以解决这个问题。 以下是诀窍:

yarn remove <strong i="11">@d3</strong>
yarn remove @types/d3
yarn add <strong i="12">@d3</strong>
yarn add @types/d3 --dev

所有3条评论

@亚光的Senseye我不知道你为什么会添加d3types数组tsconfig.app.json ,应该没有这样做的必要。 标准 TS 模块/类型解析应该解决所有问题。

您是否有package-lock.jsonyarn等价物来检查为d3@types/d3安装的依赖项? d3-scaled3-scale-chromatic之间似乎存在版本冲突。 您列出的错误都是[email protected]以前的功能,截至d3-scale@2已重构为d3-scale-chromatic 。 因此,您的安装应该隐含依赖于d3-scale@2

谢谢@tomwanzek - 是的,它似乎与我的 yarn.lock 文件中引用的依赖项存在某种奇怪的版本冲突。

最初,我只是更新了package.json的版本号并运行了yarn install ,无论出于何种原因导致上述错误。

但是,首先删除 d3 和类型定义,然后将包重新添加到最新版本似乎可以解决这个问题。 以下是诀窍:

yarn remove <strong i="11">@d3</strong>
yarn remove @types/d3
yarn add <strong i="12">@d3</strong>
yarn add @types/d3 --dev

我有一个非常相似的错误,但是

npm remove --save-exact d3
npm remove --save-exact @types/d3
npm install --save-exact d3
npm install --save-exact -D @types/d3

不解决它。

当我导航到类型本身时,我可以看到d3-scaled3-scale-chromatic有时会导出相同的函数:

Screen Shot 2019-05-06 at 13 25 10

这是正常的吗? 我不应该安装d3而是安装每个单独的包吗?

此页面是否有帮助?
0 / 5 - 0 等级