машинописный импорт d3 и d3-force-attract

avatar
Sam P
8 апреля 2018 в 03:49
782
2
2

Я установил D3 и d3-force-attract

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

Попытка выяснить, как импорт 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.
Источник

Ответы (2)

avatar
jredd
12 сентября 2018 в 14:39
-1

Вы пробовали типы d3-force?

npm install --save @types/d3-force
avatar
Cyril Cherian
8 апреля 2018 в 04:32
3

Проблема здесь:

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'

Это импортирует только forceAttract из 'd3-force-attract', поэтому, если вы собираете через веб-пакет, он будет импортировать только forceAttract в минимизированную сборку.