Como faço para colocar um gráfico do Google no Angular 4

Como você integra um gráfico do google em um aplicativo angular 4?

Eu li a resposta para a pergunta SOaqui, mas acredito que está incompleto. Basicamente, estou tentando a mesma estratégia da resposta anterior, usando um GoogleChartComponent e outro componente que a estende. Dois erros surgem, o primeiro é uma chamada ausente para super () para o componente filho e o segundo é a chamada para "novo" neste código

  createBarChart(element: any): any {
      return new google.visualization.BarChart(element);
  }

Estou recebendo o erro "google.visualization.BarChart não é um construtor".

Vejo que um dos comentários também menciona o uso de<ng-content> para projeção de dados, mas não está claramente descrito.

Ao tentar fazer uma pergunta "boa", eis o meu GoogleChartComponent:

export class GoogleChartComponent implements OnInit {
  private static googleLoaded: any;
  constructor() {
    console.log('Here is GoogleChartComponent');
  }

  getGoogle() {
    return google;
  }

  ngOnInit() {
    console.log('ngOnInit');
    if (!GoogleChartComponent.googleLoaded) {
      GoogleChartComponent.googleLoaded = true;
      google.charts.load('current', {
        'packages': ['bar']
      });
      google.charts.setOnLoadCallback(() => this.drawGraph());
    }
  }

  drawGraph() {
      console.log('DrawGraph base class!!!! ');
  }

  createBarChart(element: any): any {
      return new google.visualization.BarChart(element);
  }

  createDataTable(array: any[]): any {
      return google.visualization.arrayToDataTable(array);
  }
}

E meu componente filho que o estende:

@Component({
  selector: 'app-bitcoin-chart',
  template: `
   <div id="barchart_material" style="width: 700px; height: 500px;"></div>
  `,
  styles: []
})
export class BitcoinChartComponent extends GoogleChartComponent  {
 private options;
  private data;
  private chart;
  // constructor() {
  //   super();
  //   console.log('Bitcoin Chart Component');
  // }
  drawGraph() {
    console.log('Drawing Bitcoin Graph');
    this.data = this.createDataTable([
     ['Price', 'Coinbase', 'Bitfinex', 'Poloniex', 'Kraken'],
     ['*', 1000, 400, 200, 500]
    ]);

    this.options = {
     chart: {
                    title: 'Bitcoin Price',
                    subtitle: 'Real time price data across exchanges',
                },
                bars: 'vertical' // Required for Material Bar Charts.
    };

    this.chart = this.createBarChart(document.getElementById('barchart_material'));
    this.chart.draw(this.data, this.options);
  }
}

questionAnswers(2)

yourAnswerToTheQuestion