plugins.legend.align are incompatible types typescript chartjs

x6492ojm  于 2023-06-05  发布在  Chart.js
关注(0)|答案(2)|浏览(473)

我的选项对象中有这样的东西

const options = {
  plugins: {
    legend: {
      align: 'end',
    }
  }
}

根据Chartjs documentation,align接受3个值:

  • 启动
  • 中心
  • 结束

对齐工作正常,我得到了想要的结果,但typescript抱怨对齐的类型应该是'start','center'或'end',而不是字符串。

Type 'string' is not assignable to type ' "end" | "start" | "center" | undefined '

深入到Chartjs的类型定义中,我明白了

export interface LegendOptions<TType extends ChartType> {
  ....
  /**
   * Alignment of the legend.
   * @default 'center'
   */
  align: 'start' | 'center' | 'end';

}

如果我把align改成字符串类型。打字错误消失了,但我不应该这样做。
任何想法/意见/建议都非常感谢!

yfjy0ee7

yfjy0ee71#

问题似乎在react-chartjs-2库中。
如果你切换到chart.js的准系统版本,你就不会有这个问题:https://codesandbox.io/s/goofy-curie-eyxrr?file=/src/App.tsx

fruv7luv

fruv7luv2#

尝试添加as cons

align: 'center' as const

their repo中找到此解决方案

相关问题