Я пытаюсь следовать примеру таблицы данных, но у меня есть одна проблема, когда я пытаюсь реализовать свой источник данных. Последняя подписка говорит мне, что мне нужно иметь тип данных any в моем предмете поведения, когда я уже объявил тип как любой.
А вот служба информации о самолете:
import { Aircraft } from '../shared/aircraft';
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class AircraftInfoService {
aircraft: Aircraft[];
getApi = 'https://<domainRemoved>/api/PApps_AircraftInfo?<keyRemove>';
constructor(private httpClient: HttpClient) {
}
ngOnInit() {
console.log('aircraftInfoservice');
}
getAircraft() {
return this.httpClient.get(this.getApi)
}
}
Вот код источника данных:
import { Aircraft } from '../shared/aircraft';
import { AircraftInfoService } from './aircraft-info.service';
import { BehaviorSubject } from 'rxjs';
import { CollectionViewer, DataSource } from '@angular/cdk/collections';
import { Observable } from 'rxjs';
import { of } from 'rxjs';
import { catchError, finalize } from 'rxjs/operators';
export class allAircraftInfoDataSource implements DataSource<Aircraft> {
private aircraftDBSubject = new BehaviorSubject<any[]>([]);
private loadingSubject = new BehaviorSubject<boolean>(false);
public loading$ = this.loadingSubject.asObservable();
constructor(private aircraftInfoService: AircraftInfoService) {}
connect(collectionViewer: CollectionViewer): Observable<Aircraft[]> {
return this.aircraftDBSubject.asObservable();
}
disconnect(collectionViewer: CollectionViewer): void {
this.aircraftDBSubject.complete();
this.loadingSubject.complete();
}
getAircraft() {
this.loadingSubject.next(true);
this.aircraftInfoService.getAircraft().pipe(
catchError(() => of([])),
finalize(() => this.loadingSubject.next(false))
)
.subscribe(data => this.aircraftDBSubject.next(data));
}
}
.next (данные) дает мне ошибку:
ОШИБКА в ../../src/app/services/aircraft-info-datasource.service.ts(36,56): ошибка TS2345: Аргумент типа 'Объект | any [] 'нельзя назначить параметру типа' any [] '.
Тип «Объект» назначается очень немногим другим типам. Вы хотели использовать вместо этого любой тип?
Типу «Объект» не хватает следующих свойств типа «любой []»: длина, поп, толчок, конкат и еще 26.
Редактирование вопроса и включение дополнительной информации. Информация о самолете - это то, где содержится вызов getAircraft. Он возвращает httpclient get, поэтому отсюда и тип требования any. Так как это HTTP-вызов, я не могу напечатать это, я могу? Если я пытаюсь, это дает мне ошибки. Есть ли возможность привести значение в машинописи так же, как в 'C'?
Спасибо ....