Typescript and Angular2-highcharts: Property 'series' does not exist on type 'Object'

Andreas Hald picture Andreas Hald · Sep 14, 2017 · Viewed 7.9k times · Source

When i try to implement the following plunkr in Angular, i get the following error message.

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

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

i've installed "angular2-highcharts": "^0.5.5", and the typing "@types/highcharts": "^5.0.5",

Any help would be appreciated.

Answer

Saravana picture Saravana · Sep 14, 2017

The the compiler does not know if the property series is present in this.options when you type it as Object.

To overcome this you can either remove the typing for the property (the lazy way out):

class AppComponent {

    options: any;
}

Or you can let the compiler infer the type from the object by assigning it directly so this.options will be typed properly:

class AppComponent {

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

Or define the type of options in an interface:

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: ...
            // ...
        };
    }
}