typescript如何通过key拿到指定的value类型??

image.png

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.5k
1 个回答
export type Rules<T extends Model = any> = Partial<{
  [K in keyof T]: Rule<T[K]> | Rule<T[K]>[]
}>

最终这样解决的,还没思考为什么Record不行,希望大佬们可以解惑

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题