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

Почему некоторые дженерики могут выводить тип из передаваемых аргументов, как

здесь https://bit.ly/3rSmt3N

а другие нет https://bit.ly/3qNvxWu он не понимает, что за значение я передаю
пытался сделать через infer и тоже не понимает https://bit.ly/3bLZcL7

почему так делаю? захотел избавится от явной передачи типа (да, вот такой вариант работает https://bit.ly/2Ni58SL)

38 ответов

23 просмотра

https://t.me/ts_cool/141931

Maksim- Автор вопроса

ты опять ребусами говоришь)

Maksim- Автор вопроса

уже не первый раз упоминаешь про типы-параметры в наших диалогах. что почитать для начала?

Maksim- Автор вопроса

спасибо за ответы, стало понятнее. что остается? явно указывать

тип-параметр неизвестен, поэтому берётся тип-ограничитель const foo = <ТипПараметр extends ТипОграничитель>...

fetching: unknown — это из Record<string, unknown>

либо указывать явно, либо использовать data-first подход

Maksim- Автор вопроса

кроме ленда и своего блога скинь, пожалуйста, в личку хорошие материалы для изучения PS да, наконец понял, что под тип-параметром имел ввиду, это перевод с английского variale type)

Эх, если бы реактеры хоть немножечко трудились воспроизвести проблему без реакта - больше бы людей могло помочь (в том числе и я, который не знаю реакт) А может, в процессе воспроизведения без реакта и сами бы поняли, в чём причина...

Maksim- Автор вопроса

сколько снобизма спасибо за пример

Ну у реакта много нюансов, которые не всегда понимаешь, пока не начинаешь углубляться в типизацию, поэтому как человек, жрущий кактус скажу - не все так очевидно

Maksim- Автор вопроса

в примере от реакта почти ничего и нет, только функции поэтому ты написал только свою имитацию фрейморка, которая ничем от приведенного мной примера не отличается

И типы. Это ж кучу времени занимает у не-реактера, чтоб понять, что такое React.ComponentType, React.ComponentClass, React.FunctionComponent и т д

Maksim- Автор вопроса

React.ComponentType

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

внутри пасхалка

Maksim- Автор вопроса

я обычно компоузу все передаю сразу

это то, что я назвал “ковровая бомбардировка типами”. это не всегда нужно

Maksim- Автор вопроса

удобно видеть как комбайн преобразует данные

хз, я сам не настоящий сварщик( не знаю, что тут можно посоветовать, кроме как “пиши ещё”

мэйби

понравилась моя песочница?

ну ты её линканул, думал похвалишь

Кстати, в вашем случае MapProps даже не экстендит тот Record type Test = AsideProps extends Record<string, unknown> ? boolean : number // number А вот CatProps экстендит: type Test = CatProps extends Record<string, unknown> ? string : number // string

Maksim- Автор вопроса

кстати, есть либа как рамда только data-first подходом, надо попробовать

remeda есть, они хвалятся “мы как рамда, только датафёрст, нас типизировать легче”

вот только data-first выключает композицию. а без композиции нахера оно всё нужно?

а ещё remeda не по спеке работает, она на хую вертела все эти ваши функторы, сетоиды и всё остальное. посему тоже идёт нахер

Без рамбды получилось вот так. Забавно, да, что без подсказки дженериков map<T[number], Date> он сам не выведет. У меня из-за этого в моей либе много таких "подсказок" ТС-у - я всё же дата-ласт подход использовать предпочитаю

lodash? )

ну ты просто переписал функции, что есть в рамде. а зачем?)

У них композ сложно типизируется - не хотел заморачиваться, чтоб исправить типизацию) Да и не учил я рамбду))

🤷‍♂️

О, значит просто угадал с типами map и sort - говорю же, не учил рамбду))

👍🏿

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
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
Карта сайта