您好,我想知道是否有人可以帮助我。
我有一个函数,该函数使用点分隔符将对象的每个级别作为字符串
例如
const fooType = {
test: {
test1: {
test2: 'test'
}
},
testing: {
testable: 'be'
},
bottom: 'b'
};
所以如果我想获取test2的值,我会将该函数编写为
foo('test.test1.test2')
如果我采用以下type fooTypeProps = keyof typeof fooType;
它给了我test | testing | bottom
我想知道打字稿中是否有一种方法可以获取该密钥,但对于所有外行而言,因此在这种情况下,我将获得test.test1.test2 | testing.testable | bottom
的并集
答案 0 :(得分:0)
在question this duplicates中,您可以输入自己的类型,并获得表示路径树叶子的元组联合:
type AllLeaves = Leaves<typeof fooType>
/* type AllLeaves = ["test", "test1", "test2"] | ["testing", "testable"] | ["bottom"] */
但是您不能在类型系统中将它们转换为点分字符串,而类型系统没有字符串文字操作的概念。