после обновления до 6.3.3 я получаю в pipe () ошибку TS2557: ожидалось не менее 0 аргументов, но получено 1 или более. - PullRequest
0 голосов
/ 22 октября 2018

Пожалуйста, кто-нибудь может помочь,

в канале rxjs 6.3.3 получить TS2557: Ожидается не менее 0 аргументов, но получено 1 или более.

   let currentPath;
const pipeArguments = path
  .map((subPath: string, index: number) => [
    flatMap((href: string) => {
      console.log('href', href);
      return this.getEndpointMapAt(href);
    }),
    map((endpointMap: EndpointMap) => {
      console.log('map', endpointMap);
      if (hasValue(endpointMap) && hasValue(endpointMap[subPath])) {
        currentPath = endpointMap[subPath];
        return endpointMap[subPath];
      } else {
        currentPath += '/' + subPath;
        return currentPath;
      }
    })
  ])
  .reduce((combined, thisElement) => [...combined, ...thisElement], []);
return of(this.getRootHref()).pipe(
  ...pipeArguments,
  distinctUntilChanged()
);

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Это проблема со статической типизацией.Приведение к any работает, но это хак.

Типобезопасный подход - reduce() по массиву труб:

return pipeArguments
    .reduce((obs, op) => obs.pipe(op), of('http://localhost:8001/1/'))
    .pipe(distinctUntilChanged()

Ссылка:

0 голосов
/ 25 октября 2018

Пока код, связанный с этой проблемой, не будет объединен, я думаю, что вы застряли с тем же хаком, что и здесь, поэтому: здесь

и проблема

return (of('http://localhost:8001/1/') as any).pipe(
 ...pipeArguments,
 distinctUntilChanged()
);
...