169 похожих чатов

Добрый день. Необходимо фильтровать список по title или text. Для переключения

фильтрации есть кнопки.

На https://angular-ivy-j2cqv4.stackblitz.io фильтрация работает без проблем, как по title, так и по text. Но в коде на компе ошибка в строке:
"return post[field].toLocaleLowerCase().includes(search.toLocaleLowerCase()) - ругается на post[field]"

Ссылка на код https://stackblitz.com/edit/angular-ivy-j2cqv4?file=src/app/pipes/filter.pipe.ts

Подскажите, пожалуйста, что делаю не так?

12 ответов

17 просмотров

А как ругается? post[field]?.toLocaleLowerCase() либо (post as any)[field]?.toLocaleLowerCase() либо более красиво (post as Record<string, string>)[field]?.toLocaleLowerCase() Должно решить проблему

а что если типизировать field в аргументах пайпа: field: 'title'|'text' = 'title' ?

как вариант в пайпе можно ‘field: any’ заменить на “field: keyof Post”

Marisha- Автор вопроса
ⓞⓝⓔⓜⓐⓝⓣⓞⓞ
А как ругается? post[field]?.toLocaleLowerCase() ...

Текст ошибки: Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'Post'. No index signature with a parameter of type 'string' was found on type 'Post' Вариант с post[field]?.toLocaleLowerCase() - ошибка сохраняется (post as any)[field]?.toLocaleLowerCase() - работает (post as Record<string, string>)[field]?.toLocaleLowerCase() - работает Спасибо огромное 🙂

Marisha
Текст ошибки: Element implicitly has an 'any' type...

c keyof вариант вероятнее даже правильнее https://t.me/angular_ru/502582

Marisha- Автор вопроса
Eric Cartmenez
как вариант в пайпе можно ‘field: any’ заменить на...

В таком случае ошибка в app.component.html в строке " *ngFor="let post of posts | filter: search:searchField"" Текст ошибки: Argument of type 'string' is not assignable to parameter of type 'keyof Post' Конкретно подчеркивает searchField

Marisha- Автор вопроса
Sergei Sergeevich
а что если типизировать field в аргументах пайпа: ...

В таком случае ошибка в app.component.html в строке " *ngFor="let post of posts | filter: search:searchField"" Текст ошибки: Argument of type 'string' is not assignable to parameter of type '"title" | "text" | undefined' Конкретно подчеркивает searchField

Marisha- Автор вопроса
Eric Cartmenez
в апп компоненте searchField: keyof Post

Ошибка: Expected 1-3 arguments, but got 4 *ngFor="let post of posts | filter: search:searchField:keyof Post

Marisha
Ошибка: Expected 1-3 arguments, but got 4 *ngFor="...

не в темплейте) в app.component.ts

Marisha- Автор вопроса
Eric Cartmenez
не в темплейте) в app.component.ts

Спасибо, работает ) Надо запомнить данный вариант

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта