应用场景一#
假设某函数获取 obj 和 key 两个参数
function getObj(obj:object,key:string){
return obj[key]
}
存在的问题 key 不一定属于 obj 上的索引,因此存在风险。
因此需要讲 key 断言为 obj 上类型,写法如下。
function getObj(obj:object,key:string){
return obj[key as keyof typof obj]
}
当然,你也可以这样
function getObj<T>(obj:object,key:keyof T):T[keyof T]{
return obj[key]
}
应用场景二#
假设后段传递一段约束用来定义全局用户信息
const getInfo=async()=>{
const res= await fetch("/auth/all")
const value=await res.json()
type C= Parital<typeof value[0]>
}
操纵 C 类型即可。