使用打字稿创建对象中键的联合对象
Use typescript to create union object of keys in objects
我有以下对象:
const myObject = {
one: {
fixed: {
a: 1
}
},
two: {
fixed: {
b: true
}
},
three: {
fixed: {
c: 'foo'
}
}
}
我如何使用这个对象来创建一个等同于以下内容的类型:
type MyUnionType = {
a: number
b: boolean
c: string
}
?
您可以使用
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
),然后(详细)访问与该键关联的嵌套值。
我有以下对象:
const myObject = {
one: {
fixed: {
a: 1
}
},
two: {
fixed: {
b: true
}
},
three: {
fixed: {
c: 'foo'
}
}
}
我如何使用这个对象来创建一个等同于以下内容的类型:
type MyUnionType = {
a: number
b: boolean
c: string
}
?
您可以使用
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
),然后(详细)访问与该键关联的嵌套值。