我有一个常数,它是一棵树,拥有唯一的键作为它的叶子,例如:
const Tree = {
Branch1: {
Leaf1: '1'
SubBranch1: {
SubLeaf: '11'
},
...
},
Branch2: {
Leaf2: '2'
SubBranch2: {
SubLeaf: '21'
}
},
...
}
我想创建一个泛型类型Leaves<typeof Tree>
,它将是所有叶子值的列表,即'1' | '11' | '2' | '21' ...
。问题是我找不到任何例子来说明如何有效地将对象树简化为它们的键或类似的东西。
1条答案
按热度按时间n6lpvg4x1#
您可以使用
playground
唯一值得解释的是,类型参数
L0
可能是条件类型(如果有多个键),因此在这种情况下,它作为分布式条件类型工作。此外,在定义常量时使用
as const
(constAssert)确保其类型是最特定的情况,否则树叶类型将只是string
。注意:已编辑以移除不必要的程式码。原始的playground可能仍然有助于了解它的运作方式。