Методы addLayer и getLayers карты OpenLayers, работающие с настраиваемыми типами слоев

Я расширяю LayerGroup и _ 2_ классы для включения свойства id, которое мне нужно для идентификации определенного слоя / группы слоев (это также отражает идентификатор слоя DIV в DOM).

Пример для TileLayer:

export class OperationalLayer extends TileLayer {
    id: String;
    
    constructor(url: string, name: string, id: string) {
        const source = new TileWMS({
            params: {'LAYERS': name},
            url: url,
        });
        super({source: source});

        this.id = id;
    }
}

У меня также есть другой класс, который расширяет старый класс Map.

Я бы хотел каким-то образом иметь в этом расширенном классе Map getLayers() метод, который должен возвращать мои настроенные (расширенные) слои с их id информацией, а не BaseLayer по умолчанию для OpenLayers.

Я не могу найти способ сделать это. Я просмотрел исходный код как addLayer() и _11 _, и они имеют дело с BaseLayer типом слоев, поэтому я думаю, мне нужно настроить эти методы (перегрузить их?), но я не совсем уверен, что это правильный путь.

По сути, моей конечной целью было бы получить мои индивидуальные идентификаторы слоев следующим образом:

// here getLayers() should now return my customized layer type
myCustomizedMap.getLayers().forEach(customLyr => console.log(customLyr.id)) // MY ID PROPERTY HERE

person umbe1987    schedule 04.08.2020    source источник