error TS2339: Property 'moveToFront' does not exist on type 'Selection<any>'.
error TS2339: Property 'moveToBack' does not exist on type 'Selection<any>'.
これらのエラーがスローされているが、プロトタイプが正常のようなものをやっているので選択にmoveToFrontとmoveToBackプロパティを追加拡張:
import { Component, Input, Injectable } from '@angular/core';
import { Http, HTTP_BINDINGS, Response } from '@angular/http';
import { bootstrap } from 'angular2/platform/browser';
import { RouteParams } from '@angular/router-deprecated';
import { Router } from '@angular/router-deprecated';
import { Observable } from 'rxjs/Rx';
import 'rxjs/Rx';
import * as d3 from 'd3';
import { DataService } from './data.service';
@Component({
selector: 'measure',
templateUrl: 'app/new-container.html',
styleUrls: ['app/new-container.css']
})
export class NewContainer {
public measures;
public dimensions;
public dimensionsAlias;
public id: string;
constructor(private router: Router, private routeParams: RouteParams, private _dataService: DataService) {}
ngOnInit() {
if (this.routeParams.get('id') != null) {
this.id = this.routeParams.get('id');
}
/* deleting previous svg canvas to make room for the new one */
var s = d3.selectAll('svg');
s.remove();
d3.selection.prototype.moveToFront = function() {
return this.each(function(){
this.parentNode.appendChild(this);
});
}
d3.selection.prototype.moveToBack = function() {
return this.each(function() {
var firstChild = this.parentNode.firstChild;
if(firstChild) {
this.parentNode.insertBefore(this, firstChild);
}
});
}
this.getAll();
}
/* gets data from json files */
getAll() {
this._dataService.getAll().subscribe(
data => {
this.measures = data[0];
this.dimensions = data[1];
this.dimensionsAlias = data[2];
},
err => {
console.error(err);
},
() => {
/* this is where I draw everything and use the moveToFront
and moveToBack properties on selections */
this.draw();
}
);
}
問題はtypescriptですが、言って、エラーを投げている
d3.select("#container").moveToFront();
その要素を前面に移動して移動します。それで動作しますが、プロトタイプを拡張したときやmoveToFrontも呼び出すたびにエラーがスローされています。
このエラーを解決する方法を知っている人はいますか?ありがとう。
これは、私がプロトタイプを拡張した場所からエラーを取り除くために働いていましたが、 "moveToFront"を使用してもエラーが発生しています。 d3.select( "#container")。moveToFront()と同じように、エラーはまだスローされています。なぜなのかご存知ですか?しかし、助けてくれてありがとう! –
私は何かを選択したときにmoveToFrontを使用するたびに同じエラーが発生していましたが、それらのエラーはまだスローされています。 –
確かに。再びtsは使用時にメソッドを表示しません。オブジェクトを任意のものとしてキャストし、moveToFrontメソッドを呼び出すことができます。 d3.seletionの定義ファイルを拡張してそこに提供することもできます。それはもっと良いアプローチだろう。 –