Я обычно один для наблюдаемых, но для предотвращения «ада обратного вызова» в этом сценарии я использую toPromise()
для упрощения, но я получаю сообщение об ошибке lint при попытке определить тип возвращаемого значения:
Тип «Объект» можно назначить очень немногим другим типам.Вы хотели использовать вместо этого любой тип?Типу «Объект» не хватает следующих свойств из типа «ReferralReasons []»: длина
мой код (this.apiSvc.get
возвращает объект http.get):
async getJobReferralReasons(): Promise<Array<ReferralReasons>> {
return this.apiSvc.get(`${this.API_JOB}/ReferralReasons`).toPromise();
}
но это нормально без ошибки:
async getJobReferralReasons(): Promise<any> {
return this.apiSvc.get(`${this.API_JOB}/ReferralReasons`).toPromise();
}
Итак, при вызове я получаю массив реферальных кодов прямо в массиве:
const reasons = await this.helpdeskSvc.getJobReferralReasons();
Я бы подумал, что изменение any
и установка типа Array<ReferralReasons>
будет работать, что мне не хватает, чтобы установить правильный тип?
--- Обновление
Мой сервисный вызов выглядит так:
get(apiURL, data = {}) {
return this.http.get(this.parseURL(apiURL), {
headers: this.getHeaders(),
params: this.parseGetParams(data)
});
}
Но это работает, но это не то, что у меня есть (как вы можете видеть, это немного отличается, и я не могу поставить тип перед get):
async getJobReferralReasons2(): Promise<ReferralReasons[]> {
return this.http.get<ReferralReasons[]>('', {}).toPromise();
}