我正在编写一些带有简化版本的redux中间件:
const api = {
createStuff (params: object): Promise<{someAttr: true}> { ... }
}
export const createChannel = (params: object): ApiAction => {
return {
transform: (payload) => ({ ...payload, anotherField: 123 }), // Here I would like to be able to autocomplete the someAttr specified in the function signature above
call: (api) => api.createStuff(params) // the above api object is injected here by the middleware
};
};
中间件将获取call
函数的结果并将其传递给transform
回调。
我想根据payload
函数的函数签名自动推断要转换createStuff
的类型
我认为我会做类似
的事情我有以下界面
export interface ApiAction<R> {
transform? (R): object
callApi (object): Promise<R>
}
但在这里我需要明确声明R
类型。我宁愿自动推断
这可能吗?