Quiero usar d3js en angular2, pero cuando quiero agregar una transición cuando el elemento cambia, ocurre un error: Property 'transition' does not exist on type 'Selection<BaseType, {}, null, undefined>' Uso angular-cli para generar proyecto, y la versión de angular es 4.0.0, y d3js es 4.8.0
Aquí está mi typings.d.ts :
declare module 'd3' { export * from 'd3-array'; export * from 'd3-axis'; export * from 'd3-brush'; export * from 'd3-chord'; export * from 'd3-collection'; export * from 'd3-color'; export * from 'd3-dispatch'; export * from 'd3-drag'; export * from 'd3-dsv'; export * from 'd3-ease'; export * from 'd3-force'; export * from 'd3-format'; export * from 'd3-geo'; export * from 'd3-hierarchy'; export * from 'd3-interpolate'; export * from 'd3-path'; export * from 'd3-polygon'; export * from 'd3-quadtree'; export * from 'd3-queue'; export * from 'd3-random'; export * from 'd3-request'; export * from 'd3-scale'; export * from 'd3-selection'; export * from 'd3-shape'; export * from 'd3-time'; export * from 'd3-time-format'; export * from 'd3-timer'; export * from 'd3-transition'; export * from 'd3-voronoi'; export * from 'd3-zoom';}
Aquí está mi app.component.ts
import * as d3 from 'd3'; ...... d3.select(this).select("path").transition().attr("d", function(d) { console.log(d); return arc2(<any>d); }) Si elimino transition() , funciona bien.
¿Cómo resolverlo? Gracias
He arreglado mi código por:
import { select as d3Select } from 'd3-selection'; import { transition as d3Transition } from 'd3-transition'; d3Select.prototype.transition = d3Transition;y luego use d3Select en su código en lugar de seleccionar
puede seguir:https://github.com/DefinitelyTyped/DefinitelyTyped/issues/16176