здесь https://bit.ly/3rSmt3N
а другие нет https://bit.ly/3qNvxWu он не понимает, что за значение я передаю
пытался сделать через infer и тоже не понимает https://bit.ly/3bLZcL7
почему так делаю? захотел избавится от явной передачи типа (да, вот такой вариант работает https://bit.ly/2Ni58SL)
https://t.me/ts_cool/141931
ты опять ребусами говоришь)
уже не первый раз упоминаешь про типы-параметры в наших диалогах. что почитать для начала?
спасибо за ответы, стало понятнее. что остается? явно указывать
тип-параметр неизвестен, поэтому берётся тип-ограничитель const foo = <ТипПараметр extends ТипОграничитель>...
либо указывать явно, либо использовать data-first подход
кроме ленда и своего блога скинь, пожалуйста, в личку хорошие материалы для изучения PS да, наконец понял, что под тип-параметром имел ввиду, это перевод с английского variale type)
Эх, если бы реактеры хоть немножечко трудились воспроизвести проблему без реакта - больше бы людей могло помочь (в том числе и я, который не знаю реакт) А может, в процессе воспроизведения без реакта и сами бы поняли, в чём причина...
сколько снобизма спасибо за пример
Ну у реакта много нюансов, которые не всегда понимаешь, пока не начинаешь углубляться в типизацию, поэтому как человек, жрущий кактус скажу - не все так очевидно
в примере от реакта почти ничего и нет, только функции поэтому ты написал только свою имитацию фрейморка, которая ничем от приведенного мной примера не отличается
И типы. Это ж кучу времени занимает у не-реактера, чтоб понять, что такое React.ComponentType, React.ComponentClass, React.FunctionComponent и т д
React.ComponentType
внутри пасхалка
я обычно компоузу все передаю сразу
это то, что я назвал “ковровая бомбардировка типами”. это не всегда нужно
удобно видеть как комбайн преобразует данные
хз, я сам не настоящий сварщик( не знаю, что тут можно посоветовать, кроме как “пиши ещё”
мэйби
понравилась моя песочница?
ты о чём?
ну ты её линканул, думал похвалишь
Кстати, в вашем случае MapProps даже не экстендит тот Record type Test = AsideProps extends Record<string, unknown> ? boolean : number // number А вот CatProps экстендит: type Test = CatProps extends Record<string, unknown> ? string : number // string
кстати, есть либа как рамда только data-first подходом, надо попробовать
remeda есть, они хвалятся “мы как рамда, только датафёрст, нас типизировать легче”
вот только data-first выключает композицию. а без композиции нахера оно всё нужно?
а ещё remeda не по спеке работает, она на хую вертела все эти ваши функторы, сетоиды и всё остальное. посему тоже идёт нахер
Без рамбды получилось вот так. Забавно, да, что без подсказки дженериков map<T[number], Date> он сам не выведет. У меня из-за этого в моей либе много таких "подсказок" ТС-у - я всё же дата-ласт подход использовать предпочитаю
lodash? )
ну ты просто переписал функции, что есть в рамде. а зачем?)
У них композ сложно типизируется - не хотел заморачиваться, чтоб исправить типизацию) Да и не учил я рамбду))
О, значит просто угадал с типами map и sort - говорю же, не учил рамбду))
👍🏿
Обсуждают сегодня