что в ChangeEvent<HTMLSelectElement> поле event.target.value: string, а мне хотелось бы привязать его к дженерику компонента.
... event.target.value as T естественно к самому типу дженерика по факту не приводит.
Возможно я упускаю очевидный момент, что без явного каста в коде тут не обойтись, и дело тут не в TS. Кто-нибудь решал такую проблему уже?
currentTarget, а не target
interface SelectProps<T> { options: T[]; value: T; onChange: (event: React.ChangeEvent<{ value: T }>) => void; } function Select<T>(props: SelectProps<T>) { const { options, value, onChange } = props; return ( <select value={value} onChange={onChange}> {options.map((option) => ( <option key={option} value={option}> {option} </option> ))} </select> ); }
Тоже тип string
А, тебе нужен более узкий тип, ясно. Тогда да, без каста не обойтись
Обсуждают сегодня