Typescript - 没有实现抽象方法
Typescript - not implementing abstract method
为什么抱怨这个错误?我正在实施 activateMultiselect。
Non-abstract class 'RegionGetter' does not implement inherited
abstract member 'activateMultiselect' from class 'AreaGetter'.
代码:
abstract class AreaGetter implements iGetAreas {
_areasList: Array<string>;
_areas: KnockoutObservableArray<string>;
_selectedArea: KnockoutObservable<string>;
getAreas(geonameId){
var self = this;
self._areasList = [];
$.ajax({
url: `http://api.geonames.org/children?geonameId=${geonameId}&username=elion`
}).then(function(allAreasXML) {
var allAreasJSON = xml2json(allAreasXML);
var allAreas = JSON.parse(allAreasJSON);
if(allAreas.geonames.length) {
for (var index = 1; index < allAreas.geonames.length - 1; index++) {
self._areasList.push(allAreas.geonames[index].geoname);
}
} else {
if(allAreas.geonames) {
self._areasList.push(allAreas.geonames.geoname);
}
}
self._areas(self._areasList);
});
}
abstract activateMultiselect();
}
class RegionGetter extends AreaGetter {
_areasList = [];
_areas = ko.observableArray([]);
_selectedArea = ko.observable('');
activateMultiSelect() {
$("#region-select").multiselect({
buttonWidth: '100%',
buttonContainer: '<div style="height: 64px;" />',
buttonClass: 'none',
onChange: function(option, checked, select) {
alert('Changed option ' + $(option).val() + '.');
}
});
}
}
您在区分大小写方面有错字。
而不是 activateMultiSelect()
你应该写 activateMultiselect()
.
为什么抱怨这个错误?我正在实施 activateMultiselect。
Non-abstract class 'RegionGetter' does not implement inherited abstract member 'activateMultiselect' from class 'AreaGetter'.
代码:
abstract class AreaGetter implements iGetAreas {
_areasList: Array<string>;
_areas: KnockoutObservableArray<string>;
_selectedArea: KnockoutObservable<string>;
getAreas(geonameId){
var self = this;
self._areasList = [];
$.ajax({
url: `http://api.geonames.org/children?geonameId=${geonameId}&username=elion`
}).then(function(allAreasXML) {
var allAreasJSON = xml2json(allAreasXML);
var allAreas = JSON.parse(allAreasJSON);
if(allAreas.geonames.length) {
for (var index = 1; index < allAreas.geonames.length - 1; index++) {
self._areasList.push(allAreas.geonames[index].geoname);
}
} else {
if(allAreas.geonames) {
self._areasList.push(allAreas.geonames.geoname);
}
}
self._areas(self._areasList);
});
}
abstract activateMultiselect();
}
class RegionGetter extends AreaGetter {
_areasList = [];
_areas = ko.observableArray([]);
_selectedArea = ko.observable('');
activateMultiSelect() {
$("#region-select").multiselect({
buttonWidth: '100%',
buttonContainer: '<div style="height: 64px;" />',
buttonClass: 'none',
onChange: function(option, checked, select) {
alert('Changed option ' + $(option).val() + '.');
}
});
}
}
您在区分大小写方面有错字。
而不是 activateMultiSelect()
你应该写 activateMultiselect()
.