我有两个结构相似的未知(通用)嵌套对象:
const A = {
one: {
two: {
three: {
func1: () => null,
},
},
},
}
const B = {
one: {
two: {
three: {
func2: () => null,
},
},
},
}
我想创建一个类型,将它们合并在一起,这样func1
和func2
都存在于one.two.three
中,但one
、two
和three
只引用A的属性。
交叉点使我接近,但并不完全是我所需要的。例如,当我这样做时:
const C: typeof A & typeof B = {}
C.one.two.three.func1() // Valid
C.one.two.three.func2() // Valid
这两个函数都应该是three
中的值,但是每个共享属性都引用回A和B,而我需要它只引用回A。
例如,如果我想从C变量跳转到three
的定义,我的IDE将显示两个可以跳转到的定义(A和B),但我只希望Typescript关注A,并让我的IDE跳转到A,因为这是唯一的选择。
1条答案
按热度按时间u5rb5r591#
这可以通过ts-toolbelt的深补丁来实现。