VSCode использует движок TypeScript под капотом, который не очень хорош для вывода типов из композиций функций, и, как вы видели, не распознает бессмысленную композицию как объявление функции.
Есливам нужны подсказки типа, вы можете указать аргументы для составной функции, обернув заостренную функцию вокруг нее.
Я бы написал это примерно так - примечание: значения по умолчанию делают JSDoc ненужным для подсказок типа, нов любом случае вы можете сохранить JSDoc для описания. Также убедитесь, что сбои, вызванные откатами значений по умолчанию, приводят к адекватному обмену сообщениями об ошибках.
/**
* http request with JSON parsing and token management.
* @param {Object} fetchSettings the settings for the fetch request
* @param {Object} fetchSettings.body the body of the request
* @param {string} fetchSettings.route the URL of the request
* @param {string} fetchSettings.method the method of the request
* @param {string} fetchSettings.token should only be used for testing and unauthenticated requests
*/
const request = ({
body = {},
route = '',
method = 'GET',
token = ''
}) => asyncPipe(liftedGetToken, liftedFetch, json)({
body, route, method, token
});