当使用匿名函数和D3 SVG符号时,“属性在类型{}上不存在”错误
问题描述:
我试图创建D3 SVG符号,其中符号形状是根据数据中的类别属性动态设置的。这将成为PowerBI中自定义视觉的一部分,所以我使用了Typings库。当使用匿名函数和D3 SVG符号时,“属性在类型{}上不存在”错误
从我在网上看到的例子中,下面的代码应该可以工作。
但我得到的错误Property 'typeSymbol' does not exist on type '{}'
的代码.type(function(d){ return d.typeSymbol})
。看来d
在type()
内部不可用,因为它在d3.svg.symbol()
代码中使用。如果我用像“square”这样的字符串文字替换匿名函数,它就可以工作。
这怎么解决?
答
Typescript不知道任何关于您的数据对象类型。您可以定义数据对象类型,或者您可以尝试使用任何类型的数据:
milestoneSymbols.attr('d', d3.svg.symbol()
.size(25)
.type(function(d: any){ return d.typeSymbol;})
+0
这工作,谢谢Marcelo! –
您可以显示数据的最小示例吗? – mdml
看来你正在使用打字稿。你是否收到编译错误或运行时错误? – Marcelo
我收到了一个编译错误:错误TYPESCRIPT /src/timeline.ts:(609,70)类型'{}'上不存在属性'typeSymbol'。' –