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

Народ, как написать одну функцию с несколько типами? Типа const

add = (list, item) => [...list. item].
Тут хотелось бы задать несколько типов для list и item. При этом не дублировать функцию

5 ответов

9 просмотров

Можно перечислить через type1 | type2, либо использовать add<T, R> = (list: T, item: T) , при использование просто кидай add<TypeFirst, TypeSecond>, так же можно и в конце сделать

Olzhas-Zhussipbek Автор вопроса

вконце, как function() {...} as add<TypeFirst, TypeSecond>?

Olzhas Zhussipbek
вконце, как function() {...} as add<TypeFirst, Typ...

Но у меня проблема всегда, idea не может понять какие там внутри есть свойства у объектов или тип, так как дженерик подразумевает на лету подставление типа, тебе придется читать свои типы или же предоставлять соответствие типа который ты будешь кидать в аргумент, как type TypeFirst = { key: string }[] type TypeSecond = { key: boolean } const a: TypeFirst = [{ key: 'value' }] const b: TypeSecond = { key: true } add<TypeFirst, TypeSecond>(a, b.key);

Olzhas-Zhussipbek Автор вопроса
Ruslan Zamalov
Но у меня проблема всегда, idea не может понять ка...

да, и придется продублировать add. Сейчас хочу попробовать add<T extends TypeFirst[]|TypeSecond[], P extends TypeFirst|TypeSecond> = (list:T, item: P) => P extends TypeFirst ? TypeFirst[] : P extends TypeSecond ? TypeSecond[] : T(??? хз что сюда)

Olzhas Zhussipbek
да, и придется продублировать add. Сейчас хочу поп...

стой бро, какая-то х честно, я несколько минут не могу понять что тут)) Чем проще тем легче будет тебе и другим поддерживать)

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

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

why some site like google has separate page for username/email and password?
Mr Thieves
21
Hi there everyone Is there anyone who have not started hamster bot yet? I need only one, I'll be glad if you do this for me DM if you haven't yet
Mehrshad
33
А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Подскажите, сейчас что то есть (JS модуль какой-нибудь), что можно использовать для: 1) переваривания javascript codа из html fileа, т.е. разбивки, на переменные, команды, бло...
Iar De
32
Мне интересно, скорее людей здесь используют D, Rust, C/C++ для решения реальных прикладных задач за деньги?)
Evil Satanson
43
https://t.me/hamster_kombaT_bot/start?startapp=kentId5602172918 Bermainlah denganku, jadilah CEO bursa kripto dan dapatkan airdrop token! 💸  2k Koin sebagai hadiah pertama kal...
Andrea Surya Habibie
5
какие клиентские датасеты в лазаре умеют объединяться в master-detail? нужно забрать на клиент запись из одной таблицы и выборку из другой связанной один-ко-многим, отредактир...
Igor
19
кто поможет крякнуть чит? (реверс инжиринг) чтобы разблокировать премиум версию
Mёdkinson Medvezhkin
40
/////////////////////////////////////// TChart / TLineSeries - сохранение данных (текстовый файл) /////////////////////////////////////// добрый день / работа с графиком: 1....
livontiy
14
Только я не понимаю зачем получать инфу о скорости порта, если он не открывается. Дальше то что с этой инфой делать?
Евгений
9
Карта сайта