banner
SlhwSR

SlhwSR

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

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

アプリケーションシナリオ 1#

関数が obj と key の 2 つのパラメータを取得すると仮定します。

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]
}

アプリケーションシナリオ 2#

バックエンドがグローバルユーザー情報を定義するために制約を渡すと仮定します。

const getInfo=async()=>{
  const res= await fetch("/auth/all")
   const value=await res.json()
     type C= Parital<typeof value[0]> 
}

C 型を操作することができます。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。