[英]Create a type of nested inner object keys in typescript
我想提取內部元素並創建一個新類型。 例如。 創建一個內部鍵類型:
interface temp{
a: {
"aa":number
}
b:{
"bb":number
}
}
為了動態創建內部類型,我使用了:
type innerTemp={
[k in keyof temp[keyof temp]]:temp[keyof temp][k]
}
我也嘗試過這種方式:
type innerTemp={
[i in keyof T[k][k in keyof T]] : T[k][i]
}
但它不按我想要的方式工作。 我希望內部界面像
interface innerTemp{
aa:number,
bb:number,
}
誰能建議一種動態創建內部類型的方法?
這可以通過UnionToIntersection
類型來實現:
type UnionToIntersection<U> =
(U extends any ? (k: U)=>void : never) extends ((k: infer I)=>void) ? I : never
type InnerTemp = {
[K in keyof UnionToIntersection<Temp[keyof Temp]>]:
UnionToIntersection<Temp[keyof Temp]>[K]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.