Javascript 函数的Typescript参数作为接口或类型

Javascript 函数的Typescript参数作为接口或类型,javascript,typescript,callback,Javascript,Typescript,Callback,是否可以将接口中函数定义的参数用作类型 (放入类型或接口的数组?) 导出接口中间件事件{ onNewAccount:(accountId:string,timestamp:number)=>void, onAccountDelete:(accountId:string,时间戳:number)=>void, } const middlewareMap:Map void)[]>=new Map(); 功能中间件( eventId:EventName, args:any[] ) { const mid

是否可以将接口中函数定义的参数用作类型

(放入类型或接口的数组?)

导出接口中间件事件{
onNewAccount:(accountId:string,timestamp:number)=>void,
onAccountDelete:(accountId:string,时间戳:number)=>void,
}
const middlewareMap:Map void)[]>=new Map();
功能中间件(
eventId:EventName,
args:any[]
) {
const middleware=middlewareMap.get(eventId);
if(中间件?.length){
中间件.forEach((m)=>{
m(…args);
});     
}
}
fireMiddleware(`onNewAccount`,[123,`2020-05-21T21:42:00.496Z`])
log(`Wait,Typescript应该阻止此`)
log(`account Id是string而不是number`)
log(`datetime已更改为timestamp,现在是一个数字`)

参数类型将函数的参数作为元组返回

type A = Parameters<(a: string, b: number) => void> // [string, number]

非常感谢!我不知道类型推断和Parameter关键字。今天我学到了一些新东西!很乐意帮忙!:)
type A = Parameters<(a: string, b: number) => void> // [string, number]
function fireMiddleware<EventName extends keyof MiddlewareEvent>(
    eventId: keyof MiddlewareEvent,
    args: Parameters<MiddlewareEvent[EventName]>
) {}