Напиши тип Middle Дженерики обновлено

ReturnType у дженерик-функции

Вопрос

Какой тип получится? Впишите тип.

function id<T>(x: T) {
  return x;
}
type R = ReturnType<typeof id>; // /* ? */

Попробуйте сами

Напишите тип, как написали бы в коде.

Показать ответ и разбор

Коротко

Правильный тип: unknown. typeof id это <T(x: T) = T.

Правильный тип

unknown

Разбор

typeof id это <T>(x: T) => T. Когда условный тип ReturnType применяется к дженерик-сигнатуре, параметр типа заменяется своим ограничением, а у T без ограничения это unknown. Для конкретного вызова используют instantiation expression (TS 4.7+): ReturnType<typeof id<string>> даёт string.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме