ngrx 效果给出类型 'void' 不可分配给类型 'ObservableInput'

ngrx effects gives Type 'void' is not assignable to type 'ObservableInput'

@Injectable()
export class ApiSearchEffects {

  @Effect()
  search$: Observable<any>
    = this.actions$
    .ofType(query.ActionTypes.QUERYSERVER)
    .debounceTime(300)
    .map((action: query.QueryServerAction) => action.payload)
    .switchMap(payload => {
      console.log(payload);
      const nextSearch$ = this.actions$.ofType(query.ActionTypes.QUERYSERVER).skip(1);

      this.searchService.getsearchresults(payload)
        .takeUntil(nextSearch$)
        .map((response) =>
          ({type: '[Search] Change', payload: response}
          ))
    });

上面的代码给出了类型为“(payload: any) => void”的参数不可分配给类型为“(value: any, index: number) => ObservableInput”的参数。 类型 'void' 不可分配给类型 'ObservableInput'。 哪里可能是错误的。我已经关注 https://github.com/ngrx/effects/blob/master/docs/intro.md 上的 ngrx 效果官方介绍。

问题是你的switchMap应该return一个值;它 return 无效。

试试这个

  return this.searchService.getsearchresults(payload)
        .takeUntil(nextSearch$)