2

在此处输入图像描述将我的 react es6 comp 转换为 typescript 时,我在 IDE 的第 16 行(<Line ...)上遇到了这个奇怪的 typescript 错误。它是我使用 react-chartjs-2 的图表组件。

类型'{数据:{标签:字符串[];中缺少属性'类型';数据集:{标签:字符串;数据:字符串[];}[]; }; 高度:数字;宽度:数字;选项:{维护AspectRatio:布尔值;尺度:{ yAxes:{ 刻度:{ beginAtZero:布尔值;}; }[]; }; 传奇: { ...; }; }; }' 但在“道具”类型中是必需的。

import React from "react";
import { Line, defaults } from "react-chartjs-2";

defaults.plugins.tooltip.enabled = true;
defaults.plugins.legend.position = "bottom";

interface Props {
  currencyValues: string[],
  dateList: string[],
}

const LineGraph = ({ currencyValues, dateList }: Props) => {
  return (
    <div className="graphContainer">
      {currencyValues.length ? (
        <Line
          data={{
            labels: [...dateList],
            datasets: [
              {
                label: "Historical Dates",
                data: [...currencyValues],
              },
            ],
          }}
          height={400}
          width={600}
          options={{
            maintainAspectRatio: false,
            scales: {
              yAxes: [
                {
                  ticks: {
                    beginAtZero: true,
                  },
                },
              ],
            },
            legend: {
              labels: {
                fontSize: 25,
              },
            },
          }}
        />
      ) : null}
    </div>
  );
};

export default LineGraph;

4

1 回答 1

6

看起来类型定义说该type道具是强制性的。这似乎是图书馆作者的一个错误,在 github ( 1 , 2 )上有多个未解决的问题

如果你传入一个typeprop,它将摆脱类型错误,并且没有任何效果(因为 Line 组件覆盖了类型 prop):

<Line
  type="line"
  data={{
    //etc
于 2021-05-03T23:17:03.257 回答