如何正确使用返回Promise的回调函数?解决TS类型报错
解决TS2345回调参数类型不匹配问题
错误原因
你调用paramsFactory时传入的getPageInfo({ page: 1 })会立即执行,返回的是一个Promise<void>对象,但paramsFactory的第二个参数要求的是一个返回Promise的函数(类型为() => Promise<void>),两者类型不匹配,因此触发TS2345错误。
正确调用方式
将getPageInfo的调用包裹在箭头函数中,传递符合类型要求的函数引用:
paramsFactory(params, () => getPageInfo({ page: 1 }))
这样当paramsFactory内部执行callback()时,才会调用getPageInfo并返回Promise,完全匹配回调参数的类型定义。
动态参数处理(可选)
如果需要传递动态参数给getPageInfo,可以在箭头函数中直接使用:
const targetPage = 2; // 动态页码 paramsFactory(params, () => getPageInfo({ page: targetPage }))
内容的提问来源于stack exchange,提问作者stanislav kim
相关产品推荐
相关产品推荐

