2017-02-17 14 views
2

だから私はこれを持っている...d3v4 +活字体+ angular2エラー

import { D3Service, D3, Selection } from 'd3-ng2-service'; 

interface ChartData { 
    q: number, 
    p: number 
} 

export class GraphComponent implements OnInit{ 
    private d3; 
    private x1; 
    private y; 

    constructor(element: ElementRef, d3Service: D3Service) { 
     this.d3 = d3Service.getD3(); 
     let d3 = this.d3; 


    this.y = d3.scaleLinear() 
    .domain([0,100]) 
    .range([330, 20]) 
    ; 
    this.x1 = d3.scaleLinear() 
    .range([0, 100]) 
    ; 
} 

    render() { 
     let y = this.y; 
     let x1 = this.x1; 
     let data = [{p:1,q:1}, {p:0.5,q:2}] 

     var line = d3.line() 
      .x((d: ChartData) => {return x1(d.q);}) 
      .y((d: ChartData) => {return y(d.p);}); 

     svg.append("path") 
      .data(data) 
      .attr("class", "line") 
      .attr("d", line); 
    } 
} 

私は、上のエラーを取得しています。 X(D:ChartData)と言っライン:

Argument of type '(d: ChartData) => any' is not assignable to parameter of type '(d: [number, number], index: number, data: [number, number][]) => number'. Types of parameters 'd' and 'd' are incompatible. Type '[number, number]' is not assignable to type 'ChartData'. Property 'q' is missing in type '[number, number]'.

私はその後、私はカスタムデータを持っているライン(データ)を介してライン()の中に私のデータを注入する必要があると述べているD3のドキュメント、見てください。その後、このエラーが発生し

var line = d3.line(data) 
    .x((d: ChartData) => {return x1(d.q);}) 
    .y((d: ChartData) => {return y(d.p);}); 

...私はそうすることができるはずと言っD3のドキュメントにもかかわらず

ERROR in [default] file.ts:259:13 Supplied parameters do not match any signature of call target.

...

。だから私は何が間違っているの?

答えて

8

最初の構文(dataを渡さない)が正しいです。 [デフォルト]ファイルで「ERRORになり

d3.line<[number, number]> 
+0

:デフォルトでコンパイルしようとしています

var line = d3.line<ChartData>() .x((d: ChartData) => {return x1(d.q);}) .y((d: ChartData) => {return y(d.p);}); 

:私はあなただけのようなあなたがd3.lineに渡しているものを活字体に伝えるために持っていると思います。 ts:259:13 指定されたパラメータがコールターゲットのシグネチャと一致しません。同じように。 –

+0

@JonThompson、私は構文をねじ込み、 'd3.line ()' **ではない 'd3.line()' – Mark

+0

私はそのようなコードを持っているが、別のエラーが出る - エラー:(45、18)TS2345: 'Line '型の引数は、 'ValueFn '。 パラメータ 'data'と 'datum'の型は互換性がありません。 タイプ '{p:number; q:数; } 'は' ChartData [] '型に割り当てられません。 プロパティ 'includes'がタイプ '{p:number; q:数; } '。 –