banner
SlhwSR

SlhwSR

热爱技术的一名全栈开发者
github
bilibili

ts typeof推断隐式类型及应用场景

应用场景一#

假设某函数获取 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 类型即可。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。