У меня есть метод, который использует данные из внешнего API:
public async getStatus(id: string): Promise<APIRes | undefined> {
try {
const result = await getRequest(`${this.URL}/endpoint/${id}`)
const response: APIRes = result.data
return response
} catch (err) {
errorHandler(err)
}
}
Интерфейс для APIR выглядит следующим образом:
export interface APIRes{
version: string,
status: string,
uuid: string,
time: string
}
Проблемаэто когда я пытаюсь вызвать getStatus из другого метода:
public async getListOfResults(id: string) {
try {
const getStatus = await this.getStatus(id)
if (getStatus.status === 'Queue' || getStatus.status === 'Progr') {
...//MORE CODE
}
const result = await getRequest(`${this.URL}/endpoint/${id}/result`)
return result.data
} catch (err) {
errorHandler(err)
}
}
Я получаю Object is possibly undefined
на getStatus.status. Теперь я понимаю, почему это происходит (поскольку метод getStatus может возвращать неопределенное значение), но не знаю, как лучше всего исправить, не добавляя флаг nostrict
.
Если я удаляю <| undefined>
в типе возврата для getStatus
Я получаю
Function lacks ending return statement and return type does not include 'undefined'.ts(2366)`
Если я пытаюсь изменить его с неопределенного на пустое, я все равно получаю сообщение об ошибке getStatus.status