typescript类型限制问题

const data = {
    keyName1:1,
    keyName2:'a',
}
export const setData= (key:keyof typeof data,val:never)=>{
    return data[key]=val
}

setData()调用的时候第一个参数可以限制为data已存在的key名,第二个参数想根据第一个参数所传的key对应的值类型做限制改怎么处理呢?

//例如
setData('keyName1',11) //这里的第二参数限制为number
setData('keyName2','aa') //这里的第二参数限制为string
阅读 1.3k
1 个回答
export const setData = <K extends keyof typeof data>(key: K, val: typeof data[K]) =>{
    return data[key] = val;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进