Здравствуйте. Подскажите пожалуйста, я пытаюсь обернуть fetch функцией, для более удобной работы с json:
interface ResponseData{
status: boolean;
data?: object;
}
function sendQuery(url: string, data: object): Promise<ResponseData>
{
return fetch(url, {
method: "POST",
headers: {
Accept: "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify(data)
}).then((response: Response) => {
return response.json();
}).then((data) => {
return new Promise((resolve, reject) => {
resolve({
status: true,
data: data
});
});
}).catch(() => {
return new Promise((resolve, reject) => {
reject({
status: false
});
});
});
}
Появляется ошибка:
Type 'Promise<unknown>' is not assignable to type 'Promise<ResponseData>'.
Эта ошибка появляется из-за блока catch, почему-то ts считает что вернется Promise(unknown). Пробовал interface менять на type. Указывать тип у функции catch не помогает.
P.S. Указывать костыль в виде Promise(any) не кажется верным решением.