#angular #typescript #rxjs #rxjs5
#angular #машинописный текст #rxjs #rxjs5
Вопрос:
Привет, я получаю ошибку typescript в своем коде. ниже приведен мой код .
combineLatest(
this.translateService.get('CLONE_FLIGHT', { item: this.flight.name}),
this.flightsService.getCampaignsToClone(this.flight.id)
).subscribe([ header, campaigns]) => {
console.log('test');
});
ошибка, которую я получаю,
Argument of type 'any[]' is not assignable to parameter of type '(value: [any, Campaign[]]) => void'.
Type 'any[]' provides no match for the signature '(value: [any, Campaign[]]): void'.ts(2345)
Cannot find name 'campaigns'.ts(2304)
сигнатура метода для TranslateService.get выглядит следующим образом
get(key: string | Array<string>, interpolateParams?: Object): Observable<string | any>;
вызов метода flightsService.getCampaignsToClone(this.flight.id )
является
getCampaignsToClone(flightId: string){
let campaigns: Campaign[] = [
{ id:"1", name: "test campaign 001", createdOn:"",lastUpdated: "", createdBy: null,
type:null, status: null, startDate: null, endDate: null, budget: null, description: "",
account: null },
{ id:"2", name: "test campaign 002", createdOn:"",lastUpdated: "", createdBy: null,
type:null, status: null, startDate: null, endDate: null, budget: null, description: "",
account: null },
{ id:"3", name: "test campaign 003", createdOn:"",lastUpdated: "", createdBy: null,
type:null, status: null, startDate: null, endDate: null, budget: null, description: "",
account: null }
];
return Observable.of(campaigns);
}
код, которого я хочу достичь, сначала разрешает свойство ‘CLONE_FLIGHT’ и загружает объекты campaign, затем в subscribe я хочу вызвать модальное диалоговое окно. Однако я получаю указанную выше ошибку
я новичок в typescript и наблюдаемых.
ценю любую помощь, большое вам спасибо, прасант
Ответ №1:
это была синтаксическая проблема, которую я должен был написать так
combineLatest(
this.translateService.get('CLONE_FLIGHT', { item: this.flight.name}),
this.flightsService.getCampaignsToClone(this.flight.id)
).subscribe( ([header, campaigns]) => {
console.log(header);
});