如何转换对象值在2-深度typescript联合不使用'字符串'索引?


// from
const obj = {
a: {
aa: 'A',
cc: 'C',
},
b: {
bb: 'B',
cc: 'C',
}
} as const;
// to
type ObjValue = 'A' | 'B' | 'C';

嗨,我想从对象中获取联合类型

所以我尝试了typeof obj[keyof typeof obj]模式,但它只是返回这个。

type ObjValue = 'C'

我如何得到联合类型只组成字符串值的对象没有String索引?

我不确定为什么typeof obj[keyof typeof obj]模式不真正与联合工作。使用映射类型可以解决这个问题。

type ObjValue = {
[K in keyof typeof obj]: typeof obj[K][keyof (typeof obj[K])]  
}[keyof typeof obj]
// type ObjValue = "A" | "C" | "B"

游乐场

相关内容

  • 没有找到相关文章

最新更新