Typescript 如何使函数接受可以接受多个参数的回调

Typescript 如何使函数接受可以接受多个参数的回调,typescript,Typescript,我正在用typescript开发一个项目,并希望生成一个函数,其中该函数将接受一个回调类型的参数,但回调可以有多个参数 我曾尝试在typescript问题中查找类似的用例,但我得到了一个错误“TS2394:此重载签名与其实现签名不兼容” 导出接口订阅{ ():无效 } 导出接口订阅{ 取消订阅():无效 } const createSubscription=()=>{ 返回{ 取消订阅(){} } } 键入SyncMethod0=(回调:()=>void)=>Subscription 键入Sy

我正在用typescript开发一个项目,并希望生成一个函数,其中该函数将接受一个回调类型的参数,但回调可以有多个参数

我曾尝试在typescript问题中查找类似的用例,但我得到了一个错误“TS2394:此重载签名与其实现签名不兼容”

导出接口订阅{
():无效
}
导出接口订阅{
取消订阅():无效
}
const createSubscription=()=>{
返回{
取消订阅(){}
}
}
键入SyncMethod0=(回调:()=>void)=>Subscription
键入SyncMethod1=(回调:(数据:T1)=>void)=>Subscription
键入SyncMethod2=(回调:(data1:T1,data2:T2)=>void)=>Subscription
键入SyncMethod3=(回调:(data1:T1、data2:T2、data3:T3)=>void)=>Subscription
//问题在下一行,如果我评论第10行,问题就消失了
函数fromSync(方法:SyncMethod0):(方法:SyncMethod0)=>xsSubscription
函数fromSync(方法:SyncMethod1):(方法:SyncMethod1)=>xsSubscription
函数fromSync(方法:SyncMethod2):(方法:SyncMethod2)=>xsSubscription
函数fromSync(方法:SyncMethod3):(方法:SyncMethod3)=>xsSubscription
函数fromSync(方法:任意){
让订阅:订阅
//对于虚拟数据
返回createSubscription()
//真正的代码在这里,它将创建一个可观察的(来自xstreamjs)
//返回xs.create({
//启动(侦听器){
//订阅=方法(…数据)=>{
//next(…数据);
//     });
//   },
//停止(){
//认购();
//   }
// });
}
编辑:更新的代码示例


是一个链接到TypScript游乐场。

请考虑编辑代码以构成A,因为当前我不能重现您的错误,并且当我将代码放入AN时代码会有其他错误。由于TypeScript 3.0,我可能会使用rest元组而不是重载来实现这一点,但如果没有可复制的问题,我不知道您的问题是什么。例如,Hi@jcalz感谢您的评论,我已经更新了我的代码示例,以仅显示我的问题。对于rest元组解决方案,它是否适用于不同类型的参数?还是仅适用于1种类型?