Вот как работает машинопись. По умолчанию http.get
(без параметров) возвращает Observable<Object>
. Поэтому, если вы объявите тип возврата вашего метода как Observable<BaseModel<CompanyInfoModel[]>>
, Typescript будет жаловаться, что то, что вы объявили как тип возврата из вашего метода, не соответствует тому, что будет возвращать вызов http.get
.
Однако вывод типа должен работать Другой способ: если вы используете http.get<BaseModel<CompanyInfoModel[]>>
, то обычно вам не нужно указывать тип возврата для вашего метода
getCompanyInformation(id: number) {
return this.http.get<BaseModel<CompanyInfoModel[]>>(apiUrl + 'getcompanybyid/' + companyId)
.pipe(
tap(_ => console.log(`fetched company id=${companyId}`)),
catchError(this.handleError<BaseModel<CompanyInfoModel[]>>(`getCompany id=${companyId}`))
)
}
(лично мне все еще нравится указывать тип возвращаемого значения для удобства чтения)