代码之家  ›  专栏  ›  技术社区  ›  Christopher

从角度信号中删除未定义的结果

  •  0
  • Christopher  · 技术社区  · 1 年前

    想象一下,你有一个包含数组对象的可观察对象
    并使用RxJS interop方法将其映射到信号 toSignal() .

    data$: Observable<MyData[]> = this.dataService.getData();
    
    dataSignal = toSignal<MyData[]>(this.data$, { initialValue: [] as MyData[]) });
    

    这个szenario在上有一些奇怪的对话错误 initialValue 选项属性。

    是否可以将其转换为的信号 MyData[] 没有类型 signal<MyData[] | undefined> ?

    以下是StackBlitz: https://stackblitz.com/edit/angular-fzwsff?file=src%2Fharry-potter-characters%2Fharry-potter-characters.component.html

    1 回复  |  直到 1 年前
        1
  •  2
  •   Matthieu Riegler    1 年前

    您可以让推理完成其工作,以匹配正确的函数重载 此外,为了使其发挥作用,您必须明确

    toSignal(this.data$, {
        initialValue: [] as HarryPotterData[],
      });
    

    或者您也可以指定泛型:

      data = toSignal<HarryPotterData[], HarryPotterData[]>(this.data$, {
        initialValue: [] as HarryPotterData[],
      });
    
    推荐文章