Фильтр массива в объекте
Всем привет, недавно начал изучать 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[]
Без проверки просто несоответствия типо. В ообщем запутался, прощу помощи )