web-dev-qa-db-ja.com

TypescriptおよびAngular2-highcharts:プロパティ 'series'はタイプ 'Object'に存在しません

次のプランカーをAngularに実装しようとすると、次のエラーメッセージが表示されます。

Property 'series' does not exist on type 'Object'.

http://plnkr.co/edit/OQSFSKisIIWAH0megy4d?p=preview

"angular2-highcharts": "^ 0.5.5"をインストールし、 "@ types/highcharts": "^ 5.0.5"と入力しました。

どんな助けでもいただければ幸いです。

8
Andreas Hald

コンパイラーは、seriesと入力したときに、プロパティObjectthis.optionsに存在するかどうかを認識しません。

これを克服するには、プロパティの入力を削除することができます(怠惰な方法):

class AppComponent {

    options: any;
}

または、this.optionsが正しく入力されるように、オブジェクトを直接割り当てることにより、コンパイラにオブジェクトから型を推測させることができます。

class AppComponent {

    options = {
        chart: {
            zoomType: 'xy'
        },
        series: ...
        // ...
    };
}

または、インターフェースでoptionsのタイプを定義します。

interface Options {
    series: any[], // Should be typed to the shape of a series instead of `any`
    // and type other props like "chart", "title"
}
class AppComponent {

    options: Options;

    constructor() {
        this.options = {
            chart: {
                zoomType: 'xy'
            },
            series: ...
            // ...
        };
    }
}
4
Saravana

誰かがそれが役に立つと思った場合

次のようにコンポーネントでチャートを宣言します

export class DemoComponent {
  chart: Chart;

そして、次のようなシリーズのタイプオプションを追加します

this.chart = new Chart({
  ...,
  series: [
    {
      name: 'Line 1',
      data: [1, 2, 3],
      type: 'line'
    }
  ]
});
0
Akshay Sharma