从这样的类型:
type Def = {
m1(a1: A1, b1: B1): R1
m2(a2: A2): R2
m3(a3: A3, b3: B3, c3: C3): R3
}
我想要计算一个这样的类型:
type F =
((name: 'm1', a1: A1, b1: B1) => R1) &
((name: 'm2', a2: A2) => R2) &
((name: 'm2', a3: A3, b3: B3, c3: C3) => R3)
这是动态生成的Dispatcher方法的重载函数类型.
我设法添加了name
参数,即:
type H = {
m1: (name: 'm1', a1: A1, b1: B1) => R1,
m2: (name: 'm2', a2: A2) => R2,
m3: (name: 'm3', a3: A3, b3: B3, c3: C3) => R3,
}
通过简单的对象映射以及Parameter
和ReturnType
帮助器,但是我试图将其合并到单个调用签名中的所有try 都失败了.