最近我开始重构我的 React 项目以开始在其中使用 Typescript。我在打字时遇到了一个问题,我不知道如何克服。
\n技术堆栈:Typescript、React、Redux、Redux-Saga
\n我还将 ESLint 与 AirBnB 规则集一起使用。
\n我正在尝试编写一个使用授权服务中定义的异步函数的传奇。下面的代码是我第二次尝试编写此代码。我已经拆分了signIn saga,以便不按照本文末尾的建议混合yield返回类型。
\nexport 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}\nRun Code Online (Sandbox Code Playgroud)\n登录服务的简化版本:
\nconst signIn = async ( userCredentials: UserCredentialsInterface ): Promise<UserAuthDataInterface>\n{\n /* ... Some …Run Code Online (Sandbox Code Playgroud)