У меня есть пара вопросов, которые я не могу решить.
исходный фрагмент кода:
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 устарела и теперь
Медианаблюдатель
поэтому я меняю строку импорта и тип объекта, передаваемый конструктору, на это:
import { MediaObserver } from '@angular/flex-layout';
constructor(private media: MediaObserver)…
Теперь я получаю 2 ошибки:
объявление новой карты: не удается найти «карту». Вам нужно изменить целевую библиотеку? попробуйте изменить параметр компилятора lib
на es2015 или более позднюю версию. (в моем файле tsconfig для `lib' установлено значение es2017 и dom, но даже добавление es2015 не удаляет этого.
Вторая ошибка связана с Lambda mc.mqAlias: свойство «mqAlias» не существует для типа «MediaChange[]» — глядя на новый объект, я не вижу ничего похожего на это.