【问题标题】:Highcharts plotOptions.area.depth does not exist in latest versionHighcharts plotOptions.area.depth 在最新版本中不存在
【发布时间】:2021-11-03 19:19:17
【问题描述】:

3D 面积图的 HighCharts 演示:https://www.highcharts.com/demo/3d-area-multiple

使用plotOptions.area.depth 来渲染一个接一个堆叠的多个系列。最新版本的 HighCharts 不支持此设置,Typescript 定义说它不存在。它还会在控制台中抛出此错误: Type ‘{ depth: number; }’ is not assignable to type ‘PlotAreaOptions’.

我们现在如何配置这个功能?

不管怎样,其他 3D 图表类型都支持该深度设置。

【问题讨论】:

  • 为了确定,我想问一下你是不是想像link 那样设置 options3d 的深度,对吧?
  • 尽管名称相同,但设置整个图表的深度是不同的选项。

标签: highcharts


【解决方案1】:

这看起来不像是新版 Highcharts 的回归问题。

在这种情况下,您需要在 TypeScript 项目中扩展您的类型。 我用 Angular 创建了一个示例,展示了如何在 Highcharts 3d 区域扩展类型。

缺少类型的接口的实现:

interface ExtendedPlotAreaOptions extends Highcharts.PlotAreaOptions {
  depth: number; marker: { enabled: false; }; states: { inactive: { enabled: false; }; };
}

扩展区域选项示例:

plotOptions: {
  area: {
    depth: 300,
    marker: {
      enabled: false
    },
    states: {
      inactive: {
        enabled: false
      }
    }
  } as ExtendedPlotAreaOptions
},

现场演示: https://stackblitz.com/edit/highcharts-angular-basic-line-uphers?file=src%2Fapp%2Fapp.component.ts

API 参考: https://www.highcharts.com/docs/advanced-chart-features/highcharts-typescript-declarations#solving-problems

【讨论】:

  • 您建议我们做的只是修复编译时错误,我们通过将配置转换为any 来完成。如果你没有一个可行的例子,我会完全忽略它。 :) 也就是说,我开始怀疑我们是否有另一个 X 或 Y 轴设置会破坏该选项。因为即使有你的建议,这比投射到any 更好,我们的面积图仍然呈现出来,它们之间没有空格。我们将开始删除图表选项,直到发生变化。如果我们缩小范围,请在此处报告。
  • 将此标记为正确,因为它确实可以提供更好的开发环境体验。事实证明,我们有一些代码打开了“堆叠”区域——数据是如此随机以至于不明显。看起来这个系列好像是煎饼而不是展开。关闭该选项后,它的行为确实类似于示例。如果有任何 HighCharts 员工读到了这篇文章,那么如果你能通过 API 更改尽快更新你的 Typescript 定义,那就太好了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-26
  • 1970-01-01
  • 2019-09-25
相关资源
最近更新 更多