Я хочу написать, что объединенный тип объекта содержит логический литеральный тип, заключенный в Promise в качестве ответа XHR.Но я не могу поставить соответствующие типы.
type MyResponseSuccess = { data: any, error: false };
type MyResponseFailure = { message: string, error: true };
type MyResponse = MyResponseSuccess | MyResponseFailure;
function call(): Promise<MyResponse> {
return fetch('ENDPOINT')
.then(res => res.json())
.then(payload => ({ data: payload, error: false }))
.catch(err => ({ error: true, message: err.toString() }));
}
Этот код вызывает следующие ошибки.Зачем...?или если кто-то знает решение этой проблемы, сообщите мне.
Тип 'Обещание <{data: any;ошибка: логическое значение;} |{ошибка: логическое значение;сообщение: любое;}> 'нельзя присвоить типу «Обещание».Тип '{данные: любой;ошибка: логическое значение;} |{ошибка: логическое значение;сообщение: любое;} 'нельзя присвоить типу «MyResponse».Тип '{данные: любой;ошибка: логическое значение;} 'нельзя присвоить типу «MyResponse».Тип '{данные: любой;ошибка: логическое значение;} 'нельзя присвоить типу' MyResponseFailure '.Свойство 'message' отсутствует в типе '{data: any;ошибка: логическое значение;} '.