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

Кстати, раз уж такое дело пошло Там почти в

каждом методе id'шник экстрагируется
типа
getImage({chat: {id}}: Message)

Я вот подумала, нельзя какой-нибудь декоратор написать, чтобы на вход ты получал сущность message, извлекал из неё id'шник и подставлял на место аргумента? Типа

@extractId
public getImage = (id: number) => {...}
А вызывая этот метод, передавать ему не id'шник, а объект Message ? Или система типов ругаться будет?

24 ответов

17 просмотров

система типов будет ругаться, разве что внутри декоратора передавать ид последним опциональным аргументом в метод, но выглядит крайне нежелательно такое а регулярка не должна быть /^\/text/ ?

А чего не так? public getImage = ({ id }: { id: number }) => ... Есть деструктуризация, зачем городить?

Test-Test TEst Автор вопроса

Ну, в будущем, гипотетически, можно столкнуться с более сложной структурой. А вообще я просто кастомные декораторы научилась писать, теперь везде пытаюсь придумать, где их можно применять))))

Test-Test TEst Автор вопроса

Ну, эта работает

type ID = number type SomethingWithId = { id: ID } type User = SomethingWithId & { name: string } type Order = SomethingWithId & { count: number } const getId = ({ id }: { id: number }) => id getId(user as User) getId(order as Order) getId({ id: 25 })

структурная типизация же

или ты про что?

const getId = ({ id }: SomethingWithId) => id так понятней + удобней будет в этом случае

ну да

Test-Test TEst Автор вопроса

Я про то, что если вложенность будет слишком большая, то ручками всё это прописывать лень будет. Да и в целом, опять же, эту деструктуризацию приходится повторять много раз в разных методах, а что если тип параметра поменяется, мне же тогда придётся во всех местах менять деструктуризацию, вместо одного изменения.

ну можно пойти ооп-шным путём через декораторы а можно пойти фп-шным путём через композицию функций play

Test-Test TEst Автор вопроса

Интересно. Почитаю, спасибо)

А что за шрифт?

Подскажи шрифт. Красивая тема

ну оно так же и с классами будет работать) никто не запрещает пользоваться лучшим от обоих миров play

Бляха так нравится

Test-Test TEst Автор вопроса

да, осталось только убедить остальных на проекте пользоваться этими штуками) легко! (нет) )))

Pipe > compose 🌚

const pipe = (...x) => compose(...reverse(x))

я бы даже сказал. что const pipe = compose( apply(compose), reverse, unapply(identity), )

Вода камень точит

а знаешь как поменять цвет стрелки?

это уже @ide_ru

увидел я как-то раз модуль на рамде

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

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

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта