Size: a a a

Angular - русскоговорящее сообщество

2020 February 14

🏡K

🏡 ILshat Khamitov in Angular - русскоговорящее сообщество
ну можно переиграть же, по разному,разыные задачи - разный код, нет серебрянной пули
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Ещё такой вопрос - а как можно дать понять TS, что в filter() я исключаю возможность null? Без явного указания возвращаемого типа в дженерике
источник

А

Артур in Angular - русскоговорящее сообщество
any?
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Артур
any?
Ну нееее)
источник

А

Артур in Angular - русскоговорящее сообщество
или Object
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Проверка типов то нужна дальше по пайплайну, но единственное, надо исключить null
источник

🏡K

🏡 ILshat Khamitov in Angular - русскоговорящее сообщество
пример дай
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
🏡 ILshat Khamitov
пример дай
x$: Observable<string | null>;

x$.pipe(
filter(x => !!x),
map(x => x.length)
)

Вот надо, что бы в map попал тип данных string. Но без явного указания. Можно как-нибудь просто отнять null?
источник

L

Let me take you into the light in Angular - русскоговорящее сообщество
Dilame Bowzee
Есть dummy-компонент, принимает некий объект в @Input().
Приложение реактивное, на RxJS.

Если пишу так
<child [data]="data$ | async"></child>


То в консоль ошибка падает из чайлда, мол, data is null, не могу прочитать проперти. Потом дата подгружается и всё норм рендерится, но ошибка-то в любом случае плохо.
Я решил это *ngIf 'ом, но выглядит немного как костыль, да и досаждает каждый раз это прописывать.
Как можно выкрутиться из этой ситуации? МБ делать dummy- компоненты, которые принимают обсёрвблы вместо объектов? Или есть какие-нибудь другие норм варианты?
<ng-container *ngIf="data async as data">
<child [data]="data">
источник

L

Let me take you into the light in Angular - русскоговорящее сообщество
Это такое дефолтное решение
источник

L

Let me take you into the light in Angular - русскоговорящее сообщество
Почти у всех
источник

🏡K

🏡 ILshat Khamitov in Angular - русскоговорящее сообщество
Dilame Bowzee
x$: Observable<string | null>;

x$.pipe(
filter(x => !!x),
map(x => x.length)
)

Вот надо, что бы в map попал тип данных string. Но без явного указания. Можно как-нибудь просто отнять null?
x$: Observable<string | null>;

x$.pipe(
trimNull()
map(x => x.length)
)

function trimNull() {
   return filter(x => !!x);
}

😁
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
🏡 ILshat Khamitov
x$: Observable<string | null>;

x$.pipe(
trimNull()
map(x => x.length)
)

function trimNull() {
   return filter(x => !!x);
}

😁
Да не гони, он же не обрежет)
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Или я чёто не понимаю?)
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Let me take you into the light
Это такое дефолтное решение
Понял, тогда просто не буду париться по этому поводу и прямо так писать. Спасибо)
источник

L

Let me take you into the light in Angular - русскоговорящее сообщество
Dilame Bowzee
Понял, тогда просто не буду париться по этому поводу и прямо так писать. Спасибо)
Типа, думать про типы в такой задаче
источник

L

Let me take you into the light in Angular - русскоговорящее сообщество
камон
источник

L

Let me take you into the light in Angular - русскоговорящее сообщество
А потом будешь в каждой такой задаче думать
источник

🏡K

🏡 ILshat Khamitov in Angular - русскоговорящее сообщество
Dilame Bowzee
Или я чёто не понимаю?)
ну все тоже самое что у тя, просто создал свой оператор
источник

SV

Sla V in Angular - русскоговорящее сообщество
🏡 ILshat Khamitov
x$: Observable<string | null>;

x$.pipe(
trimNull()
map(x => x.length)
)

function trimNull() {
   return filter(x => !!x);
}

😁
Шо ето такое:)))?
источник