アプリケーションシナリオ 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 型を操作することができます。