条件类型和推断打字稿以减少redux样板

时间:2019-07-05 18:18:36

标签: typescript redux

很抱歉,这个问题是否适合您,但我仍想找出解决方法。如标题中所述,我正在尝试减少redux中的样板。这是问题所在:

我有ApiUtils.ts,我的动作是ApiActions(后来是ApiReducer,但这是一个单独的问题)。

我的ApiUtils主要具有如下功能:

export function updateUserAPI(id: string, data: Partial<User>) {
  return axios.put<User>(`${usersUrl}/${id}`, data)
}

我的问题是,鉴于我正在使用https://github.com/piotrwitek/typesafe-actions#createaction中的creatAction,因此我想自动执行其中一些操作并提供类型安全性。

现在,设置操作如下所示:

export const updateUser = createAction('UPDATE_USER', resolve => (user: Partial<User>) => resolve({ user }))

即,我希望具有某种形式:function createApiAction<fn> { ... },可以在其中提供ApiUtils.updateUserAPI,然后它将推断出resolve => (user: Partial<User>) => resolve({ user})参数的签名。

我不太确定该怎么做。我一直在玩打字稿3.0+和infer中的元组arg,但是不确定如何将它们绑在一起以获得我想要的东西

0 个答案:

没有答案