2016-12-06 7 views
5

私は角2使って棒グラフを作成しようとD3 JSのですが、以下のNPMパッケージがある私が追加:「規模」と「SVG」「node_modules/@種類/ D3 /インデックス」に存在しない

"d3": "4.4.0", 
"d3-tip": "0.7.1", 
"@types/d3": "^4.3.0", 
コンパイル中typescriptファイルの下

はエラーを与えた:

エラーは以下のとおりです。

ERROR in ./angular2App/app/components/about/about.component.ts 
(34,21): error TS2339: Property 'scale' does not exist on type 'typeof "App_path/node_modules/@types/d3/index"'. 

ERROR in ./angular2App/app/components/about/about.component.ts 
(44,24): error TS2339: Property 'svg' does not exist on type 'typeof "App_path/node_modules/@types/d3/index"'. 

答えて

9

あなたのコードでは、D3 V3を使用していますv4.4.0を設定したのに対して、 V4は今flattenedなるために必要なすべてのネームスペースにモジュール化されているので:

しかし、ES6モジュールを採用した1件の避けられない結果がある:D3 4.0のすべてのシンボルが、今はむしろD3 3.xののネストされたものよりもフラットな名前空間を共有します。具体

:リニアスケールモジュールd3-scaleに含まれ

  1. changesを参照)

  2. 軸モジュールd3-axisに属しています。

    • d3.svg.axis()。オリエント( "底部")↦​​3210
+0

だから、これは同じ右のでしょうか? D3.svg.axis()。scale(this.xScale)= D3.axisBottom(this.xScale);私はxが底であると仮定しているので、方向はありません。私はここで道ではないと思っています... –

+1

@KeyvanSadralodabaiはい、これらはおおよそ同じ出力を生成するはずですが、残りのコードを見ずには分かりません。それがまだ明確でない場合、または問題に直面している場合は、代わりに完全な質問として投稿してください。 – altocumulus

+0

私はそれを試したことがあり、それは最初の試行で働いたちょうどFYI。再度、感謝します! –

関連する問題