typescript如何通过key拿到指定的value类型?
type UserInfo = {
name: string
age: number
}
type Rule<T extends Record<string, any>, K extends keyof T = keyof T> = Partial<
Record<
K,
{
// 这个value的类型如何传,不想为any, 有考虑T[K] 但是推导
validator: (value: T[K]) => void
}
>
>
const rule: Rule<UserInfo> = {
name: {
// 我想获取这个value 是UserInfo.name的value 类型,也就是string
validator(value) {},
},
age: {
// 我想获取这个value 是UserInfo.age的value 类型,也就是number
validator(value) {},
},
}
我想validator的value类型是根据UserInfo的里面的推断出来的,求大佬们帮助一下下,太感激不禁了
回复
1个回答

test
2024-07-14
代码如下:
type UserInfo = {
name: string
age: number
}
type Rule<T extends Record<string, any>> = {
[K in keyof T]?: {
validator:(value: T[K])=> void
}
}
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容