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

Подскажите, как прописать типизацию так, чтобы она основе переданных

опций компоненту в функции выводились они?

options = Option[]
<Select options={options} onChange={(value) => {}}

где value должен быть Option

34 ответов

34 просмотра

что-то вроде interface SelectProps<T> { options: T[] onChange: (value: T) => void } function Select<T>(props: SelectProps<T>){ // код компонента }

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

Сейчас попробую

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

Property 'id' does not exist on type 'T'. Можешь подсказать как это разрулить?

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

export function Select<T>(props: Props<Global.SelectOption & T>) {

interface BaseOption { id: string // другие пропсы которые ты используешь в компоненте } interface SelectProps<T extends BaseOption> { options: T[] onChange: (value: T) => void } function Select<T extends BaseOption>(props: SelectProps<T>){ // код компонента }

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

отта пасиба канешна

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

а еще можешь подсказать Codes.RiskType' does not satisfy the constraint 'SelectOption'. что за ограничения?

по всей видимости в типе Codes.RiskType нет тех свойств что описаны в SelectOption

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

можно ли как-то дженерик подогнать под SelectOption?

не понимаю, в чём твоя проблема. вот, держи акула будет недоволен

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

проблема в том, что я не могу текущие типы подружить

Собери пример в песочнице

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

это кажется нереальным

Тебе кажется

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

нет, тут всякие либы вперемешку с враперами и прочее

Ну вот пока будешь отделять зерна от плевел, сам найдёшь решение. Так песочницы и работают)

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

оно как бы выводит, но вот ошибка для меня непонятна does not satisfy the constraint 'SelectOption '.

там написано, что Codes.RiskType не похож на объект с полями id и value

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

RiskType можно сделать только значением для value внутри SelectOption?

в качестве Т нужно указывать тип значения, с которым работает селект

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

Я указываю

ты указываешь Codes.RiskType. что это?

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

enum

а должен быть ТИП ЗНАЧЕНИЙ, КОТОРЫМИ ОПЕРИРУЕТ СЕЛЕКТ

терпения вам не занимать))

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

да я понимаю это, меня больше каша текущая путает

ну разбирайся в каше. раз у тебя нет проблем с пониманием дженериков, пытайся понять свой код

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

"мой"

если ты с ним работаешь, то он твой. твой код — не обязательно тобой написанный

🧙🏿‍♂️

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

Эт да

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

вот так пришлось сделать riskTypes: Global.SelectOption<Codes.RiskType>[]; opportunityOriginTypes: Global.SelectOption<Codes.OpportunityOrigin>[]; options: Global.SelectOption<T>[]; <Select<Codes.OpportunityOrigin>

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

Заебись, по итогу в селекте вообще другой объект отображался

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта