【问题标题】:typescript import d3 and d3-force-attract打字稿导入 d3 和 d3-force-attract
【发布时间】:2018-09-17 17:56:41
【问题描述】:

我安装了 D3 和 d3-force-attract

npm install @types/d3 -S
npm install -S d3-force-attract

试图弄清楚 import d3 是如何强制吸引进来的,因为它不是打字稿模块,但 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.

【问题讨论】:

    标签: javascript typescript d3.js


    【解决方案1】:

    这里的问题是:

    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.
    

    在另一个笔记上

    我建议你不要导入完整的模块,而是有选择地导入你想要的模块。

    示例:

    import { forceAttract } from 'd3-force-attract'

    这只会从'd3-force-attract' 导入forceAttract,所以如果你通过webpack 构建,它应该只将forceAttract 导入到缩小的构建中。

    【讨论】:

      【解决方案2】:

      你尝试过 d3-force 类型吗?

      npm install --save @types/d3-force
      

      【讨论】:

        猜你喜欢
        • 2012-10-04
        • 1970-01-01
        • 2020-08-27
        • 2016-07-21
        • 2017-12-04
        • 1970-01-01
        • 2017-05-13
        • 2014-07-14
        • 2015-03-18
        相关资源
        最近更新 更多