Как установить значение по умолчанию для неопределенного ключа в наблюдаемом объекте без прокси? - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть наблюдаемая

someObjs$ = this.getData().pipe(
    map((data: Data) => ({
        a: true,
        b: true,
        c: true,
      })
    ),

Если флаг, который пользователь установил где-то, имеет значение false, я хочу всегда возвращать значение true для ключа, даже если этот ключ не существует после разворачивания наблюдаемойв шаблоне.

Пример,

someObj$ | async as obj

{{ obj['d'] }} // true

1 Ответ

0 голосов
/ 12 февраля 2019

Я не уверен, что вам нужна любая клавиша (obj['foo'], obj['bar']) или предопределенные клавиши obj['d'], но я предполагаю предопределенные клавиши.

Вы можете использовать оператор startWith в методе pipe.Создайте новый экземпляр Data и назначьте свойство d с оператором распространения (...).

const newData = new Data();

someObjs$ = this.getData().pipe(
    startWith({...newData, d: true}),
    map((data: Data) => ({
        a: true,
        b: true,
        c: true,
      })
 )

Или в классе Data можно назначить значения по умолчанию.Тогда вам не понадобится спред оператора.Вы можете просто использовать startWith с экземпляром по умолчанию Data.

...