小编Ale*_*Sil的帖子

使用 Typescript 在 Redux-Saga 中键入生成器函数

最近我开始重构我的 React 项目以开始在其中使用 Typescript。我在打字时遇到了一个问题,我不知道如何克服。

\n

技术堆栈:Typescript、React、Redux、Redux-Saga

\n

我还将 ESLint 与 AirBnB 规则集一起使用。

\n

我正在尝试编写一个使用授权服务中定义的异步函数的传奇。下面的代码是我第二次尝试编写此代码。我已经拆分了signIn saga,以便不按照本文末尾的建议混合yield返回类型。

\n
export function* callSignInService(userCredentials: UserCredentialsInterface): \n    Generator<CallEffect, UserAuthDataInterface, UserAuthDataInterface> > \n{\n    return yield call(signInService, userCredentials);\n}\n\nexport function* signIn(action: PayloadAction<UserCredentialsInterface>): \n    Generator<StrictEffect, void, PutEffect> \n{\n    try {\n        const { payload } = action;\n        const userData = yield* callSignInService(payload);\n\n        yield put(signInSuccess(userData));\n    } catch (error) {\n        yield put(signInFailure(error.message));\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

登录服务的简化版本:

\n
const signIn = async ( userCredentials: UserCredentialsInterface ): Promise<UserAuthDataInterface>\n{\n    /* ... Some …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs redux redux-saga

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

reactjs ×1

redux ×1

redux-saga ×1

typescript ×1