openlayers - typescript: kan inte komma åt basklassmetoder från härledd klass


Jag har försökt att utöka en Openlayers-kontrollklass till en egen klass i TypeScript. Även efter att ha anropat super() kan jag inte komma åt basklassens metoder.

import olControl from 'ol/control/control';
@Component({
  selector: 'track-me',
  template: require('./zoomhistory.html'),
  //styles: [require('./map.scss')]
})
  export class ZoomControl extends olControl {
    static parameters = [];
    constructor() {

      let zoomCtrlButton = document.getElementById('trackme');
      super({ element: zoomCtrlButton });   
      var self = this;
      debugger;
      self.setMap(this._map);
    }
  }

det kommer att visa property setMap() finns inte på typen ZoomControl, kan inte kompilera då. Men när jag satte debugger och hovrade över this kan jag se setMap-metoden från utvecklarkonsolen. Finns det någon lösning för detta?

Svar #1

  • Se till att ‘setMap’ är definierad som en offentlig metod i olControl
  • Försök att komma åt denna metod som self[“setMap ”](this._map)

Relaterade artiklar