我有以下物件:
const myObject = {
one: {
fixed: {
a: 1
}
},
two: {
fixed: {
b: true
}
},
three: {
fixed: {
c: 'foo'
}
}
}
如何使用此物件來創建與以下內容等效的型別:
type MyUnionType = {
a: number
b: boolean
c: string
}
?
uj5u.com熱心網友回復:
您可以使用
type MyObject = typeof myObject;
type MyUnionType = {
[T in keyof MyObject as keyof MyObject[T]["fixed"]]: MyObject[T]["fixed"][keyof MyObject[T]["fixed"]]
}
從不同的頂級屬性作為型別引數(例如(one)),它首先提取嵌套物件的鍵(例如a或b),然后(詳細地)訪問與該鍵關聯的嵌套值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/426684.html
