Фильтр массива в объекте

Всем привет, недавно начал изучать angular, и столкнулся с такой задачей.

Есть моковая БД, где (естественно) в формате json есть несколько полей. Выглядят они следующим образом

{
  "notes": [
    {
      "id": "0",
      "content": "Zero",
      "tags": [
        "1",
        "2",
        "3",
        "zero"
      ]
    },
    {
      "id": "1",
      "content": "one",
      "tags": [
        "1",
        "2",
        "3",
        "one"
      ]
    },
    {
      "id": "2",
      "content": "two",
      "tags": [
        "1",
        "2",
        "3",
        "two"
      ]
    },
    {
      "id": "3",
      "content": "three",
      "tags": [
        "1",
        "2",
        "3",
        "three"
      ]
    },
    {
      "id": "4",
      "content": "four",
      "tags": [
        "1",
        "2",
        "3",
        "four"
      ]
    }
  ]
}

Интерфейс для них также максимально прост.

interface IData {
  id?: string,
  content: string,
  tags: string[]
}

Пытаюсь отфильтровать все через кастомный пайп, и всевремя получаю ошибки. Одна из версий выглядела так

@Pipe({
  name: 'filterByTags',
  pure: true
})
export class FilterByTagsPipe implements PipeTransform {
  transform(notes: IData, query: string) {
    if (notes && query) {
      notes = notes.tags?.filter((value) => {
        return value.toLowerCase().indexOf(query.toLowerCase()) > -1
      })
      return notes
    }
    return notes
  }
}

Если добавлять проверку на несоответсвие undefined то ловлю потерянный тип в content: string[]

Без проверки просто несоответствия типо. В ообщем запутался, прощу помощи )


Ответы (0 шт):