Javascript 从数组typescript观察
我想从数组创建一个可观察的,但每次都会出现错误(元组类型的元素列表不能为空)。我试了很多,但还是不起作用Javascript 从数组typescript观察,javascript,typescript,rxjs,observable,Javascript,Typescript,Rxjs,Observable,我想从数组创建一个可观察的,但每次都会出现错误(元组类型的元素列表不能为空)。我试了很多,但还是不起作用 listdonationsHistory(): Observable<[]> { const donationsHistory = [ { id :1, type :"Aeri", amount: 200, frequency: 'monthly', d
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);
}
listdonationsHistory():可观察{
常量捐赠历史=[
{
id:1,
类型:“Aeri”,
金额:200,
频率:'每月',
日期:2017年9月17日,
账户:'ATYTYY6778'
},
{
id:2,
类型:“Aeri”,
金额:200,
频率:'每月',
日期:2017年9月17日,
账户:'ATYTYY6778'
}
];
从(捐赠历史)中可观察到的回报;
}
问题在于函数的签名:
listdonationsHistory():可观察
具体来说,它是返回类型。这就是空元组所在的位置
要将返回类型声明为发出任意数组的可观察对象,可以使用:
listdonationsHistory():可观察
但是,在实现中,您调用的是Observable.from
,返回的Observable将分别发出数组元素-在这种情况下,返回类型应为Observable
如果您想要一个可观察到的将发射阵列本身,您应该使用
observable.of
而不是observable.from
函数的签名中存在问题:
listdonationsHistory():可观察
具体来说,它是返回类型。这就是空元组所在的位置
要将返回类型声明为发出任意数组的可观察对象,可以使用:
listdonationsHistory():可观察
但是,在实现中,您调用的是Observable.from
,返回的Observable将分别发出数组元素-在这种情况下,返回类型应为Observable
如果你想要一个能发射阵列本身的可观测的,你应该使用
observable.of
而不是observable.from
,我可以看到一个问题。返回类型不是数组,而是对象。如果您想让可观察的对象成为数组,请使用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}]);
}
接口返回{
id:编号;
}
listdonationsHistory():可观察{
返回可观察的。from([{id:2},{id:3}]);
}
listdonationsHistory():可观察{
返回可观测值([{id:2},{id:3}]);
}
我发现那里有个问题。返回类型不是数组,而是对象。如果您想让可观察的对象成为数组,请使用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}]);
}
接口返回{
id:编号;
}
listdonationsHistory():可观察{
返回可观察的。from([{id:2},{id:3}]);
}
listdonationsHistory():可观察{
返回可观测值([{id:2},{id:3}]);
}
出现了什么错误?尝试observatable.create(donationsHistory)
它不起作用,仍然是同一个错误。@凯文,元组类型元素列表不能为空你得到了什么错误?尝试observatable.create(donationsHistory)
它不起作用,仍然是同一个错误。@kevin,元组类型元素列表不能为空,这是更可取的,any[]
或Array
?它们是相同的,不同的人有不同的观点。只要可能,我更喜欢前者。@cartant,我也尝试过,但它也不起作用。在这种情况下,我也没有得到一个具体的错误。对此我只得到运行时错误。我已经更新了答案-不清楚您是希望返回的可观察对象发出数组本身,还是单独发出数组的元素。答案现在解释了调用Observable.from
和Observable.of
之间的区别。哪个更可取,any[]
或Array
?它们是相同的,不同的人有不同的观点。只要可能,我更喜欢前者。@cartant,我也尝试过,但它也不起作用。在这种情况下,我也没有得到一个具体的错误。对此我只得到运行时错误。我已经更新了答案-不清楚您是希望返回的可观察对象发出数组本身,还是单独发出数组的元素。答案现在解释了调用Observable.from
和Observable.of
之间的区别。我也尝试过Observable.of,但没有得到解决方案。是的,有一件事我没有使用接口。我也尝试过,但没有得到解决方案。是的,有一件事我没有使用接口。