数组打字稿

时间:2017-09-22 07:01:52

标签: javascript typescript rxjs observable

我想从数组创建一个observable,但每次都会收到错误(元组类型元素列表不能为空)。我已经尝试了很多,但它仍然没有用。

 listdonationsHistory(): Observable<[]> {
     const donationsHistory = [
        {
          id :1,
          type :"Aeri",
          amount: 200,
          frequency: 'monthly',
          date: '17-09-2017',
          account:'ATYTYTYY6778'
        },
        {
          id :2,
          type :"Aeri",
          amount: 200,
          frequency: 'monthly',
          date: '17-09-2017',
          account:'ATYTYTYY6778'
        }
      ];
    return Observable.from(donationsHistory);
 }

2 个答案:

答案 0 :(得分:2)

问题在于函数的签名:

listdonationsHistory(): Observable<[]>

具体来说,它是返回类型。这就是空元组的位置。

要将返回类型声明为发出任意数组的observable,可以使用:

listdonationsHistory(): Observable<any[]>

但是,在实现中,您调用Observable.from并且返回的observable将分别发出数组元素 - 在这种情况下,返回类型应为Observable<any>

如果你想要一个会自己发出数组的observable,你应该使用Observable.of而不是Observable.from

答案 1 :(得分:0)

我可以在那里看到问题。返回类型不是数组,而是对象。如果您希望observable是一个数组,请使用 Observable.of 而不是 Observable.from

试试:

    interface Somereturn {
      id: number;
    }

    listdonationsHistory(): Observable<Somereturn> {
        return Observable.from([{id: 2}, {id: 3}]);
    }

    listdonationsHistory(): Observable<Somereturn[]> {
        return Observable.of([{id: 2}, {id: 3}]);
    }