ngrx:提供的参数与调用目标的任何签名都不匹配

Hon*_*iao 8 typescript rxjs5 ngrx angular

我正在使用ngrx/effects.

rxjs5.0.0-beta.12更新到5.0.0-rc.1之后,我的IDE WebStorm给出了下面的错误(红色下划线).当我运行我的应用程序时,同样的错误也会显示在终端中.

提供的参数与呼叫目标的任何签名都不匹配.

在此输入图像描述

  @Effect() updateProfile$ = this.actions$
    .ofType(ProfileActions.PROFILE_UPDATE_PROFILE)
    .map<string>(toPayload)
    .switchMap(name => this.profileService.updateProfile(name)
      .map(name => ({ type: ProfileActions.PROFILE_UPDATE_PROFILE_SUCCESS, payload: name }))
      .catch(error => Observable.of({ type: ProfileActions.PROFILE_UPDATE_PROFILE_FAIL, payload: error }))
    );
Run Code Online (Sandbox Code Playgroud)

.

  updateProfile(name: string): Observable<string> {
    return Observable.of(name);
  }
Run Code Online (Sandbox Code Playgroud)
  • 每当我使用时都会发生此错误map<string>(toPayload).我试图改变.map<any>(action => action.payload),但仍然是同样的错误.

  • 效果map<string>(toPayload)不会给出错误.

虽然它给了我错误,但应用仍然运行良好.

如何解决这个问题?

Mik*_*e R 11

在rxjs 5.0.0-rc.1中,所有运算符的泛型类型参数都被更改为首先接受源可观察类型.

您需要相应地更改map操作员呼叫:

actions$
  .ofType(ProfileActions.PROFILE_UPDATE_PROFILE)
  .map<Action, string>(toPayload)
Run Code Online (Sandbox Code Playgroud)