类型“ Selection <svgelement>”与类型“ Selection <svgsvgelement>”不具有可比性

时间:2019-02-13 14:16:04

标签: typescript d3.js svg

我对Typescript和泛型还不熟悉,我正在努力解决编译器问题。当我运行以下代码(编译目标GitHub项目)时,出现标题错误。

我尝试将d3.Selection的类型转换为<SVGSVGElement失败。我可以将其更改为<any><unknown>,但我觉得这很骗人,而不是在这里学习课程。

import * as d3 from 'd3';

type D3SVGSelection = d3.Selection<SVGElement, any, null, undefined>;

在该类的构造函数中,我设置为this.svg:

constructor(elm: HTMLDivElement) {
    private svg: D3SVGSelection;

    this.svg = (d3.select(elm).append('svg') as D3SVGSelection)
               .attr('viewBox', '-5 5 130 110')
               .attr('style', 'width: 95%; height: 70%; margin-left:5px');

我知道问题出在D3SVGSelection的类型定义上,但是我不确定如何解决它。有关将来如何自行解决此类问题的建议?

0 个答案:

没有答案