У меня есть следующий класс Typescript:
export class Envelope<T> {
result: T;
constructor(result: T) {
this.result = result;
}
}
Мне нужно сопоставить Envelope<RecentPostResponse[]>
с Observable<PostModel[]>
:
getPosts(): Observable<PostModel[]> {
return this.postService.getRecent().pipe(
map((envelope: Envelope<RecentPostResponse[]>) =>
envelope.result.map((response: RecentPostResponse) => {
return {
id: response.id,
// Other properties
};
})));
Но я получаю сообщение об ошибке:
Argument of type 'OperatorFunction<Envelope<RecentPostResponse[]>, { id: number; }[]>'.
Type 'Envelope<RecentPostResponse[]>' is not assignable to type 'Envelope<RecentPostResponse>'.
Чего мне не хватает?
Обновление
Изначально конверт был (result type was T[]
):
export class Envelope<T> {
result: T[];
constructor(result: T[]) {
this.result = result;
}
}
Ипреобразование работало так:
getPosts(): Observable<PostModel[]> {
return this.postService.getRecent().pipe(
map((envelope: Envelope<RecentPostResponse>) =>
envelope.result.map((response: RecentePostResponse) => {
return {
id: response.id,
};
})));
};
Затем я сделал простое изменение в Конверт (result type changed from T[] to T
):
export class Envelope<T> {
result: T;
constructor(result: T) {
this.result = result;
}
}
Но мне не удается адаптировать преобразование к нему ...