chartjsで「Object literal may only specify known properties, and ‘tension’ does not exist in type ‘ChartDataSets’.」がでる時の対処法

chartjsを扱う際に「Object literal may only specify known properties, and ‘tension’ does not exist in type ‘ChartDataSets’.」というエラーが出た時の解決法を記載します。

エラー発生時のchartjsのバージョンは2系です。

エラーが発生する該当のソースコードは以下となります。

chartData = {
  labels: ['ラベル1','ラベル2','ラベル3'],
    datasets: [
      {
        type: "line",
        label: "ラベル名",
        data: [1,2,3],
        fill: false,
        tension: 0, // ここが誤り
        borderColor: "#00008b",
      }     
    ]
};

「tension」が誤りで以下のように「lineTension」とする必要があるようです。

chartData = {
  labels: ['ラベル1','ラベル2','ラベル3'],
    datasets: [
      {
        type: "line",
        label: "ラベル名",
        data: [1,2,3],
        fill: false,
        lineTension: 0, // ここを修正する
        borderColor: "#00008b",
      }     
    ]
};

以下公式ページを見ると以下のことがわかります。

公式ページからわかること

chartjsのバージョン2系:lineTensionというプロパティ名が正しい
chartjsのバージョン3系:tensionというプロパティ名が正しい
→2系では「lineTension」というプロパティがあったが、3系では無くなり、代わりに「tension」というプロパティが追加されたようです。
→2系では「lineTension」というプロパティを使う必要がある!

 

chartjs2系の公式ページ:

Line · GitBook

chartjs3系の公式ページ:

Line Chart | Chart.js
Open source HTML5 Charts for your website