【发布时间】:2020-04-09 11:35:55
【问题描述】:
大家好,我想知道是否有人可以帮助我。
我有一个函数,它将对象的每个级别作为带有点分隔符的字符串
例如
const fooType = {
test: {
test1: {
test2: 'test'
}
},
testing: {
testable: 'be'
},
bottom: 'b'
};
所以如果我想得到 test2 的值,我会把函数写成
foo('test.test1.test2')
如果我采取以下type fooTypeProps = keyof typeof fooType;
它给了我一个 test | testing | bottom 的联合
我想知道打字稿中是否有办法获得那个 keyof 但对于所有层所以在这种情况下我会有一个 test.test1.test2 | testing.testable | bottom 的联合
【问题讨论】:
-
没有类型级别的字符串操作,因此编译器无法将
"test"和"test1"转换为"test.test1"。你能得到的最好的就是像["test", "test1", "test2"] | ["testing", "testable"] | ["bottom"]这样的元组
标签: typescript