Здравствуйте!
Есть такой код:
interface WhenChange<T> {
field: keyof T
value: T[keyof T]
}
interface User {
name: string
age: number
validate: boolean
}
type WhenUserChanged = WhenChange<User>
let data = {}
function handleChange({field, value}: WhenUserChanged) {
data = {
[field]: value,
}
}
handleChange({
field: 'age',
value: true
})
Проблема в том, что что когда вызывается handleChange для field срабатывает проверка и написать туда можно только number, age, validate, а вот value не подбирается тип по названию и для age можно написать и строку и boolean и number.
Подскажите, пожалуйста, как написать дженерик так, чтобы для age эта функция ждала только number, для name - string и т. д?