В общем, пишу класс для взаимодействия с api одного сервиса и подсмотрел у них в документации одно условное выражение, которое мне сломало голову. Выглядит оно следующим образом. Получается есть ответ, который приходит с сервера, мы берем из его заголовка тип контента и если он не null, то преобразуем в json, иначе в text. И вот получая с сервера тип контента = null, каким-то образом проверка доходит до второго операнда, хотя первый должен возвращать true и проверка заканчиваться. То есть, при значении null, выполнится блок else. Объясните, пожалуйста, как работает данное выражение.
let data
const contentType = res.headers.get("content-type")
if (contentType === null || contentType === void 0 ? void 0 : contentType.startsWith("application/json"))
data = await res.json();
else
data = await res.text();
)