【问题标题】:Property 'transition' does not exist on type 'Selection<BaseType, {}, null, undefined>'类型 'Selection<BaseType, {}, null, undefined>' 上不存在属性 'transition'
【发布时间】:2017-09-24 23:31:11
【问题描述】:

我想在 angular2 中使用 d3js,但是当我想在元素更改时添加过渡时,会出现错误: Property 'transition' does not exist on type 'Selection&lt;BaseType, {}, null, undefined&gt;' 我用angular-cli生成项目,angular的版本是4.0.0,d3js是4.8.0

这是我的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';

}

这是我的 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);
        })

如果我删除transition(),它的效果会很好。

如何解决?谢谢

【问题讨论】:

标签: javascript angular d3.js transition


【解决方案1】:

我已通过以下方式修复了我的代码:

import { select as d3Select } from 'd3-selection';
import { transition as d3Transition } from 'd3-transition';
d3Select.prototype.transition = d3Transition;

然后在你的代码中使用 d3Select 选择

您可以关注: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/16176

【讨论】:

    猜你喜欢
    • 2022-01-25
    • 2015-01-29
    • 2019-04-02
    • 2021-01-09
    • 2021-07-10
    • 1970-01-01
    • 2017-07-22
    • 2023-03-26
    相关资源
    最近更新 更多