dor*_*uck 5 javascript d3.js typescript
我无法理解 Webstorm IDE 中的以下 TypeScript 错误消息(对 TypeScript 来说很新,抱歉……)
我正在使用绝对类型存储库中的 d3.d.ts 来实现带有 d3js 的图形,其中 d3.svg.arc() 方法的接口定义如下:
export interface Arc {
...
outerRadius: {
(): (data: any, index?: number) => number;
(radius: number): Arc;
(radius: () => number): Arc;
(radius: (data: any) => number): Arc;
(radius: (data: any, index: number) => number): Arc;
};
...
}
Run Code Online (Sandbox Code Playgroud)
当以下列方式实现弧时......
svg.selectAll(".arc")
.attr("d", function (d) {
return d3.svg.arc().outerRadius(
function (d) {
return d - 9;
})
...
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:“参数类型函数不可分配给参数类型函数”
所以
function (d) {return d - 9;})
Run Code Online (Sandbox Code Playgroud)
似乎对该接口无效,即使它似乎是该类型
(): (data: any, index?: number) => number;
Run Code Online (Sandbox Code Playgroud)
我想我监督了一些明显的事情......我现在卡住了
谢谢
我在字符串到数字转换方面遇到了类似的问题,并通过添加显式类型转换来修复它,例如:
$.replace(/text/g, <string>$.now());。
只需注意<string>参数前面的即可。
只需尝试输入并告诉其进展情况即可。
在你的情况下,它将是这样的:
svg.selectAll(".arc")
.attr("d", function (d) {
return d3.svg.arc().outerRadius(
<Function>function (d) {
return d - 9;
})
...
Run Code Online (Sandbox Code Playgroud)
或者可能:
svg.selectAll(".arc")
.attr("d", function (d) {
return d3.svg.arc().outerRadius(
<function>function (d) {
return d - 9;
})
...
Run Code Online (Sandbox Code Playgroud)
因为错误在于Function和function之间的差异。
| 归档时间: |
|
| 查看次数: |
11316 次 |
| 最近记录: |