Redux-Observable-打字稿错误:“'{}'型缺少属性'type',但类型必需”

问题描述 投票:0回答:1

我正在使用redux-observable,但遇到无法理解的Typescript错误,并且如果rxjs管道中的代码行太多,它似乎会随机出现:

Type 'Observable<{}>' is not assignable to type 'Observable<{ type: "feed/PUSH"; payload: Profile; } | { type: "feed/POP"; } | { type: "feed/SWIPE"; payload: Swipe; } | { type: "feed/FETCH_NEXT_IDS"; } | { type: "feed/PUSH_NEXT_IDS"; payload: { nextIds: string[]; nextPage: number; }; } | { ...; } | { ...; } | { ...; }>'.
  Type '{}' is not assignable to type '{ type: "feed/PUSH"; payload: Profile; } | { type: "feed/POP"; } | { type: "feed/SWIPE"; payload: Swipe; } | { type: "feed/FETCH_NEXT_IDS"; } | { type: "feed/PUSH_NEXT_IDS"; payload: { nextIds: string[]; nextPage: number; }; } | { ...; } | { ...; } | { ...; }'.
    Property 'type' is missing in type '{}' but required in type '{ type: "feed/FETCH_NEXT_PROFILE"; }'.ts(2322)
action.d.ts(36, 5): 'type' is declared here.
index.d.ts(36, 26): The expected type comes from the return type of this signature.

这里是有错误的代码。我在管道中添加了许多tap函数,以显示仅当我有太多tap时才会出现错误的事实。如果删除定义的数字tap,该错误似乎消失了。

export const swipeEpic: Epic<RootAction, RootAction, RootState> = action$ =>
  action$.pipe(
    filter(isOfType(SWIPE)),
    tap(nextIds => {
      console.log('fetch new ids result :');
      console.log(nextIds);
    }),
    tap(nextIds => {
      console.log('fetch new ids result :');
      console.log(nextIds);
    }),
    tap(nextIds => {
      console.log('fetch new ids result :');
      console.log(nextIds);
    }),
    tap(nextIds => {
      console.log('fetch new ids result :');
      console.log(nextIds);
    }),
    tap(nextIds => {
      console.log('fetch new ids result :');
      console.log(nextIds);
    }),
    tap(nextIds => {
      console.log('fetch new ids result :');
      console.log(nextIds);
    }),
    tap(nextIds => {
      console.log('fetch new ids result :');
      console.log(nextIds);
    }),
    tap(nextIds => {
      console.log('fetch new ids result :');
      console.log(nextIds);
    }),
    map(pop)
    // map(fetchNextProfile)
  );
reactjs typescript redux rxjs redux-observable
1个回答
0
投票

[我怀疑您看到的内容与RxJS的pipe()实用程序仅对pass in 9 operations提供类型安全支持这一事实有关。

© www.soinside.com 2019 - 2024. All rights reserved.