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)