У меня есть пара проблем, которые я не могу решить.
фрагмент исходного кода:
import { map } from 'rxjs/operators';
import { ObservableMedia } from '@angular/flex-layout';
…..export class MyClass {
readonly breakpointsToColumnsNumber = new Map([
['xs', 1],
['sm', 2],
['md', 3],
['lg', 4],
['xl', 5],
]);
constructor(private media: ObservableMedia ) {
this.columns$ = this.media.asObservable().pipe(map(mc => <number>this.breakpointsToColumnsNumber.get(mc.mqAlias)));
}
Теперь после перехода к Angular 8 ObservableMedia устарела и теперь
MediaObserver
, поэтому я меняю строку импорта и тип объекта, передаваемый в конструктор, следующим образом:
import { MediaObserver } from '@angular/flex-layout';
constructor(private media: MediaObserver)…
Теперь я получаю 2 ошибки:
объявление новой карты MAP: не удается найти «карту». Вам нужно изменить целевую библиотеку? попробуйте изменить параметр компилятора lib
на es2015 или новее. (в моем файле tsconfig для `lib 'заданы es2017 и dom, но даже добавление es2015 не устраняет это.
2-я ошибка на Lambda m c .mqAlias: свойство' mqAlias 'делает не существует для типа 'MediaChange []' - глядя на новый объект, я не вижу ничего похожего на это.