2017-11-20 10 views
0

d3の部分のTypescriptバインディングを把握できません。私が今しようとしているもの:d3 typescriptバインディング:未定義のプロパティ 'ticks'を読み取ることができません

private xScale: ScaleTime<number, number>; 
private xAxis: Axis<Date | number | { valueOf(): number }>; 
... 
this.xScale = scaleTime() 
    .domain([new Date('2017-01-01'), new Date('2017-12-31')]) 
    .range([0, 100]); 
this.xAxis = axisBottom(this.xScale); 

svg.append("g") 
    .attr("transform", "translate(50,50)") 
    .call(this.xAxis); 

これは私にERROR: TypeError: Cannot read property 'ticks' of undefinedを与えます。

デフォルト設定では動作することを証明するのに十分ですが、(ticks()またはtickArguments()を使用して)そのように設定すると問題ありません。

機能axisBottom()は次のように入力される。

function axisBottom<Domain>(scale: AxisScale<Domain>): Axis<Domain>; 

が、私はそれをScaleTimeを渡しています。私はそれが私が何をしなければならないのかと思う。なぜならそれは何であるのか。scaleTime()が戻るからだ。 ScaleTimeオブジェクトにはticks()メソッドがあります(少なくとも1つはインターフェイスで指定されています)。

これらのオブジェクトをすべて接続する方法がわかりません。 「^ 4.11:タイプ/ D3 @

  • :d3が使用するのが難しいことができ、型の安全性を維持することが、物事がはるかに容易になります。..すべての

    バージョンを - 私はそれは価値があると思うので、私は持続しています。 1" 、タイプ/ D3選択マルチ@

  • : "^ 1.0.6"
  • D3: "^ 4.11.0"
  • D3選択マルチ: "^ 1.0.1"、

答えて

0

申し訳ありません。私は実際にタイスクリプトのバインディングを持っていました。私の問題は、Angularコンポーネントライフサイクルを使用しているときのエラーで、スケールがプロパティ初期化されていないことになりました。ノイズで申し訳ありません...

関連する問題