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

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

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

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

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

24 ответов

19 просмотров

система типов будет ругаться, разве что внутри декоратора передавать ид последним опциональным аргументом в метод, но выглядит крайне нежелательно такое а регулярка не должна быть /^\/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

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

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
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
Карта сайта