我安装了 D3 和 d3-force-attract
npm install @types/d3 -S
npm install -S d3-force-attract
试图弄清楚 import d3 如何强制吸引进来,因为它不是 typescript 模块,但 d3 是。
这是错误的
import * as d3 from 'd3';
import * as d3 from 'd3-force-attract';
报错如下
src/Program.ts(4,13): error TS2300: Duplicate identifier 'd3'.
src/Program.ts(4,22): error TS7016: Could not find a declaration file for module 'd3-force-attract'. '/.../node_modules/d3-force-attract/dist/d3-force-attract.js' implicitly has an 'any' type.
最佳答案
这里的问题是:
import * as d3 from 'd3';//all modules will be in d3
上面的行没问题,但是下面的行将 d3-force-attract
中的所有模块存储到 d3 中,这是错误的(您已在上面分配了它)
import * as d3 from 'd3-force-attract';
而是这样做:
import * as d3 from 'd3';
import * as d3force from 'd3-force-attract';//give it someother name like d3force.
另外一点
我建议您不要导入完整的模块,而是选择性地导入您想要的模块。
示例:
从'd3-force-attract'导入{forceAttract}
这只会从 'd3-force-attract'
导入 forceAttract
,因此如果您通过 webpack 构建,它只会将 forceAttract 导入到缩小的构建中。
关于javascript - typescript 导入 d3 和 d3-force-attract,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49714234/