Рассмотрим следующий код Angular 5 + более старые rxjs
this.measurementUnitsService.GetAll().subscribe(
res => {
this.measurementUnits = res.map(x => new MeasurementUnit(x));
}
)
Я получаю список объектов и для каждого из них создаю новый строго типизированный класс.
Как бы я сделал то же самое в angular 6 + rxjs 6 Моя попытка.
this.measurementUnitsService.GetAll().pipe<MeasurementUnit[]>(mergeMap(x => new MeasurementUnit(x))).subscribe(
res => {
this.measurementUnits = res;
}
)
К сожалению, это вызывает ошибку Type 'MeasurementUnit[]' has no properties in common with type 'Partial<MeasurementUnit>'.
MeasurementUnit
на всякий случай
export class MeasurementUnit {
Id: number;
CreatedDate: Date;
ModifiedDate: Date;
Disabled: boolean;
DisabledDate: Date;
Name: string;
Description: string;
ParentId: number;
public constructor(item: Partial<MeasurementUnit>) {
//item.EstablishedDate = new DatePipe('en-US').transform(item.EstablishedDate, "yyyy-MM-dd");
Object.assign(this, item);
}
}
mergeMap
вместоmap
. это намеренно? - person Niladri   schedule 14.08.2018map
, похоже, вызывал худшую ошибку, поэтому я изменил ее наmergeMap
. Теперь они оба делают одну и ту же ошибку. - person americanslon   schedule 14.08.2018this.measurementUnits
? этоPartial<MeasurementUnit>
- person Niladri   schedule 14.08.2018MeasurementUnit[]
- person americanslon   schedule 14.08.2018this.measurementUnits
- person Niladri   schedule 14.08.2018