2016-12-03 26 views
1

我试图创建D3 SVG符号,其中符号形状是根据数据中的类别属性动态设置的。这将成为PowerBI中自定义视觉的一部分,所以我使用了Typings库。当使用匿名函数和D3 SVG符号时,“属性在类型{}上不存在”错误

从我在网上看到的例子中,下面的代码应该可以工作。

​​

但我得到的错误Property 'typeSymbol' does not exist on type '{}'的代码.type(function(d){ return d.typeSymbol})。看来dtype()内部不可用,因为它在d3.svg.symbol()代码中使用。如果我用像“square”这样的字符串文字替换匿名函数,它就可以工作。

这怎么解决?

+0

您可以显示数据的最小示例吗? – mdml

+0

看来你正在使用打字稿。你是否收到编译错误或运行时错误? – Marcelo

+0

我收到了一个编译错误:错误TYPESCRIPT /src/timeline.ts:(609,70)类型'{}'上不存在属性'typeSymbol'。' –

回答

4

Typescript不知道任何关于您的数据对象类型。您可以定义数据对象类型,或者您可以尝试使用任何类型的数据:

milestoneSymbols.attr('d', d3.svg.symbol() 
          .size(25) 
          .type(function(d: any){ return d.typeSymbol;}) 
+0

这工作,谢谢Marcelo! –

相关问题