Машинопись - передать универсальный код функции

Я изо всех сил пытаюсь понять, как передать общий тип, который требует параметра функции только для того, чтобы функция предоставляла параметр. Ниже приведен надуманный пример, иллюстрирующий то, что я пытаюсь сделать.

interface SingleItem<T> {
  body: T
}

interface MultiItem<T> {
  body: T[]
}

function requestImages<BodyType> () {
  ...
  return resp as BodyType<Image>;
}

requestImage<SingleItem>(); //<-- will throw because SingleItem requires a parameter
requestImage<MultiItem>();

Я понимаю, что могу изменить SingleItem и MutliItem, чтобы иметь значение по умолчанию для типа, но я пытаюсь изучить детали машинописного текста, не обязательно обойти эту проблему. Есть ли способ обойтись без дженериков?


person smallnoyd    schedule 02.07.2021    source источник
comment
Непосредственно не поддерживается в TypeScript; см. microsoft / TypeScript # 1213 для получения дополнительной информации.   -  person jcalz    schedule 02.07.2021
comment
В настоящее время лучший обходной путь заключается в ведении реестра высокодородных типов, например this. Если это сработает для вас, я мог бы написать с ним ответ.   -  person jcalz    schedule 02.07.2021