Ваша ошибка здесь:
(error): void => {
throw new FetchError(`Error fetching file ${mpdUrl}: ${error}`);
},
Вы объявляете, что типом возврата является void
(функция, которая ничего не возвращает) вместо never
(функция, которая никогда не возвращает). Вы можете изменить его на : never
, но я предлагаю вам сделать вывод из TypeScript:
error => {
throw new FetchError(`Error fetching file ${mpdUrl}: ${error}`);
},
… Но если вы используете async
/ await
, вы можете переписать свой код с ними:
async function fetchMpdData(mpdUrl: string): Promise<MPDFileContainer> {
try {
const response = await fetch(mpdUrl)
const data = await response.text()
return parseStringMpd(data);
} catch (error) {
throw new Error(`Error fetching file ${mpdUrl}: ${error}`)
}
}
Обратите внимание, что переменные response
и data
правильно введены с помощью логического вывода. Бесполезно объявлять их типы.