Typescript как вернуть тип ключа
Пишу рендерер и не могу найти инфы, как правильно вернуть именно тип определённого свойства типа, передавая ключ в другом поле.
Может кто подскажет или укажет, что не так делаю? :(
type TUser = {
age: number,
initials: {
name: string
}
}
type TRendererFunctionArgs<TValues> = {
value: TValues[keyof TValues],
}
type TRenderer<TValues> = {
name: keyof TValues,
renderer: ({ value }: TRendererFunctionArgs<TValues>) => string,
}
const renderer : TRenderer<TUser> = {
name: 'initials',
renderer: ({ value }) => value.name, // <--- Тут проблема, т.к. value : value: number | {name: string}
}
Ответы (1 шт):
Автор решения: Alexandr Kiseloy
→ Ссылка
type TUser = {
age: number,
initials: {
name: string
}
}
type TRenderer<TValues> = { [K in keyof TValues]-?: {
name: K;
renderer: ({ value }: { value: TValues[K] }) => string;
} }[keyof TValues];
const renderer : TRenderer<TUser> = {
name: 'initials',
renderer: ({ value }) => value.name
}