@types/d3
包并且遇到了问题。我正在尝试从 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
。
我不确定这是否以某种方式特定于我的设置,或者它是否是一个错误 - 因此感谢任何对此有更多了解的人的帮助。
@亚光的Senseye我不知道你为什么会添加d3
的types
数组tsconfig.app.json
,应该没有这样做的必要。 标准 TS 模块/类型解析应该解决所有问题。
您是否有package-lock.json
或yarn
等价物来检查为d3
和@types/d3
安装的依赖项? d3-scale
和d3-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-scale
和d3-scale-chromatic
有时会导出相同的函数:
这是正常的吗? 我不应该安装d3
而是安装每个单独的包吗?
最有用的评论
谢谢@tomwanzek - 是的,它似乎与我的 yarn.lock 文件中引用的依赖项存在某种奇怪的版本冲突。
最初,我只是更新了
package.json
的版本号并运行了yarn install
,无论出于何种原因导致上述错误。但是,首先删除 d3 和类型定义,然后将包重新添加到最新版本似乎可以解决这个问题。 以下是诀窍: