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

Всем привет, такой вопрос, у меня есть фильтр который убирет

из массива объекты поля в котором имеют undefined, вот так работает
const data: Array<{ id: number, value?: string }> = []
const q = data.filter((v): v is { [P in keyof typeof v]-?: (typeof v)[P] } => !v.value)

а вот так нет
const data: Array<{ id: number, value?: string }> = []
const q = data.filter((v): v is Required<typeof v>=> !v.value)

хотя вроде одно и тоже
Playground

8 ответов

6 просмотров

Не совсем одно и тоже. В первом случае из объекта удалится проперти, во втором - они из опциональных превращаются в нерациональные

Dmitriy-Pikulin Автор вопроса

вроде как проперти не удаляется, удаляется признак опцианальности, или я что-то нее так понял

А что значит - не работает? Алгоритм один и тот же, типизация только отличается. Оба варианта компилятся

Dmitriy-Pikulin Автор вопроса

да меня интересует именно типизация, к рантайму вопросов нет

у меня оба варианта компилятся const data: { id: number, value?: string }[] = []; const q = data.filter((v): v is { [P in keyof typeof v]-?: (typeof v)[P] } => !v.value); const data2: { id: number, value?: string }[] = [] const q2 = data2.filter((v): v is Required<typeof v>=> !v.value)

Dmitriy-Pikulin Автор вопроса

типы после фильтров разные

и?

Dmitriy-Pikulin Автор вопроса

вопрос почему, в первом варианте я делаю то-же самое что и Required и все ок, а когда я напрямую использую Required то он оставляет undefined

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

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

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Народ всем привет Подскажите, как включить самописные dll библиотеки в итоговую сборку Сейчас при запуске dev сервера локально формируется папка build, из которой запускается...
Андрей
4
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Доброе утро! Не совсем понятно как установить счетчик яндекс метрики на сайт. И потом ещё цели проставить?
Евгения
18
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Hello dear devs I have a problem with Flutter web and iframe element consider I have a scrollable widget in flutter web with different widgets inside of it. I want to freely ...
M
4
Кто-нибудь знает, как считается нагрузка на цпу? И что такое вообще "нагрузка на цпу"? вот, например, есть у цпу какой-то clock, настроенный на 3 ГГц --- Что значит "нагрузка...
Toideng
15
Можно ли написать свою библиотеку "socket" на каком либо языке ассемблера с нуля не используя сишние библиотеки ? Или это самоубийство ?
123🪐
15
Карта сайта