Вот мой рабочий
export function* postLoginWorker(action: LoginAction): IterableIterator<any> {
try {
yield put(LoadingIndicatorActions.show());
const data = action.data as LoginPayload;
const response: LoginResponse = yield LoginService.postLogin(data); // Error here
yield put(LoginActions.postLoginSuccess(response));
}
// catch
}
Вот как выглядит postLogin:
public postLogin(payload: LoginPayload): Promise<LoginResponse> | LoginResponse {
return this.service.post({ route: ["login"] }, payload);
}
Где service.post:
public abstract post<T = void>(path: QueryPath, body: any): Promise<T> | T;
Я получение ошибки: тип 'undefined' нельзя назначить типу 'LoginResponse' в строке, упомянутой в приведенном выше коде. Я думаю, это только потому, что yield может возвращать неопределенный, когда генератор заканчивается? Но я использую тот же код в другом проекте, и он работает там совершенно нормально, я просто обновляю все в этом проекте, так что может быть что-то не так с версиями, но в любом случае yield всегда мог вернуть undefined, поэтому я сомневаюсь, что это root причина ошибки, поскольку точный код работает в другом хранилище с такими же параметрами tsconfig.